PostgreSQL:默认约束名称
在PostgreSQL中创build表格时,如果没有提供,将会分配默认约束名称:
CREATE TABLE example ( a integer, b integer, UNIQUE (a, b) );  但是使用ALTER TABLE添加一个约束似乎是一个名字是必须的: 
 ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b); 
这导致了我所处理的项目中的一些命名不一致,并提示以下问题:
- 
是否有一个简单的方法来添加一个约束到一个现有的表,如果在表创build期间添加它会收到的名字? 
- 
如果不是,应该避免默认名称,以防止不一致? 
这个手册非常清楚(“ tableconstraint:这个表单使用与CREATE TABLE相同的语法为表添加了一个新的约束 ”)。
所以你可以简单地运行:
ALTER TABLE例子ADD UNIQUE(a,b);
PostgreSQL中索引的标准名称是:
 {tablename}_{columnname(s)}_{suffix} 
其中后缀是以下之一:
-  主键约束的pkey
-   key是一个唯一的约束
-   excl排除约束
-   idx任何其他种类的索引
-   fkey为外键
-   checkCheck约束
序列的标准后缀是
-   seq为所有序列
您的UNIQUE约束的certificate:
注意:CREATE TABLE / UNIQUE将为表“example”创build隐式索引“example_a_b_key”