我想在数据库中的几千列上创建一个检查约束,但是所有约束都需要一个在数据库中唯一的名称。我想使用guid,但由于Oracle的限制,名称不能超过30个字符。
以下是语法示例:
CREATE TABLE mytable
(
col1 DATE
DEFAULT to_date('19000101', 'yyyymmdd')
CONSTRAINT unique_name_needed CHECK(col1 = TRUNC(col1))
NOT NULL
)
答案 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.
当然,技巧是为每张桌子提供独特的短名称。