在Oracle中创建唯一标识符名称的最佳方法是什么?

时间:2014-07-07 08:23:23

标签: oracle

我想在数据库中的几千列上创建一个检查约束,但是所有约束都需要一个在数据库中唯一的名称。我想使用guid,但由于Oracle的限制,名称不能超过30个字符。

以下是语法示例:

CREATE TABLE mytable
(
    col1 DATE 
        DEFAULT to_date('19000101', 'yyyymmdd') 
        CONSTRAINT unique_name_needed CHECK(col1 = TRUNC(col1)) 
        NOT NULL
)

1 个答案:

答案 0 :(得分:1)

我们为每张桌子使用3个字母的短名称。这三个字母用于命名我们的约束。所以mytable的简称可能是mtb。

然后是约束名称:

Primary: mtb_pk
Unique: mtb_uk
Foreign: mtb_otb_fk  where otb is the short name of the other table.

当然,技巧是为每张桌子提供独特的短名称。