我正在尝试学习如何使用键并打破习惯,即SERIAL我所有表中的所有行都必须具有类型ID。同时,我也在进行多对多关系,因此在需要协调关系的表的任一列上要求唯一值会妨碍这一点。
SERIAL
我如何在表上定义主键,以便任何给定的值都可以在任何列中重复,只要永不完全重复所有列中的值组合即可?
从CREATE TABLE语法页面引用:
主键可以是多列索引。但是,您不能使用列规范中的PRIMARY KEY键属性创建多列索引。这样做仅将单列标记为主要。您必须使用单独的PRIMARY KEY(index_col_name,…)子句。
这样的事情可以用于多列主键:
CREATE TABLE product ( category INT NOT NULL, id INT NOT NULL, price DECIMAL, PRIMARY KEY(category, id) );
从 13.1.20.6外国关键约束