据我所知,文档中的以下定义是等效的:
create table foo (
id serial primary key,
code integer,
label text,
constraint foo_uq unique (code, label));
create table foo (
id serial primary key,
code integer,
label text);
create unique index foo_idx on foo using btree (code, label);
Run Code Online (Sandbox Code Playgroud)
但是,您可以在注释中阅读:向表中添加唯一约束的首选方法是ALTER TABLE ... ADD CONSTRAINT.使用索引来强制执行唯一约束可以被视为不应直接访问的实现细节.
这只是一个好风格的问题吗?选择其中一种变体(例如性能)的实际后果是什么?