2014-01-08 18 views
1

对于开发我使用H2数据库,在prod它最有可能是Postgres。有没有一种方法可以以实现不可知的方式指示数据库自动为表的行提供UUID?是否有与SQL DB提供UUIDs的实现不可知的方式?

+0

然后生成您的应用程序代码 –

+0

@JarrodRoberson,是的,但我的问题是关于在数据库上做它。 –

+0

在几乎所有情况下,使用生产中使用的DBMS进行开发要好得多。 DBMS独立代码是一个神话 - 它仅仅意味着代码在所有DBMS上的工作方式都是一样的。 –

回答

1

可以使用用户定义的功能。 (请注意,如果表中有很多行(数百万行),并且如果您在此UUID上有索引,则应该避免随机分布的UUID出于性能原因。这适用于所有数据库,除非索引很容易完全符合内存。因此,如果有可能,我个人会避免使用UUID并使用序列。

0

那么很显然,它是那样简单:

CREATE TABLE items (
    uuid SERIAL, 
    PRIMARY KEY (uuid) 
) 

我没有找到SERIAL在案H2,这里的the doc for PostgreSQL。我不知道这是不是db-agnostic的程度,但它现在对H2和Postgre都足够好用了。

+0

串行是**不是** UUID –

+0

@a_horse_with_no_name您是对的。我不知道这是[实际标准](http://en.wikipedia.org/wiki/Universally_unique_identifier)。感谢您的关注。 –

相关问题