是每个表或每个数据库的Postgres约束吗?



我可以有两个具有不同约束但名称相同的表-即:

带约束C的表A

带约束C的表B

约束是不同的

谢谢!

我在文档中找不到任何合适的参考,但似乎约束名称的唯一性取决于约束的类型。

uniqueprimary key约束名称必须是唯一的,并且不能在多个表中重用,但是checkforeign key约束名称可以在多个表中使用(尽管这可能是一个坏主意,原因很明显)。

我猜原因是uniqueprimary key约束创建索引,因此需要唯一命名。

我没有找到postgres文档中提到的地方。这里是一个确认约束名称,但在数据库中是不同的。

CREATE TABLE type_position(
   type_position INTEGER CONSTRAINT pk_type_position PRIMARY KEY,
   description VARCHAR( 64 )
);
CREATE TABLE type_position2(
   type_position INTEGER CONSTRAINT pk_type_position PRIMARY KEY,
   description VARCHAR( 64 )
);

And I got the message

错误:关系"pk_type_position"已经存在

最新更新