create table my_table (
column_a integer not null,
column_b integer not null,
column_c varchar(50),
primary key (column_a, column_b)
);
- 这个错误
Msg 8110, Level 16, State 0, Line 1
Cannot add multiple PRIMARY KEY constraints to table '#my_table'.
create table my_table (
column_a integer primary key not null,
column_b integer primary key not null,
column_c varchar(50),
);
上述2个代码之间有什么区别?第一个正确执行但后者没有? 但两者都在创建多个主键?
答案 0 :(得分:3)
第一个是复合键,这意味着两列的组合必须是唯一的。另一方面,你的第二个是尝试创建两个单独的主键,这是不可能的。
答案 1 :(得分:1)
每个表只能有一个主键。这充当了您的表的唯一标识符,因此它当然会失败。
答案 2 :(得分:1)
在第一个查询中,多个字段已分配给主键,因为主键中可以有多个字段,但在第二个查询中,它尝试创建多个主键,这是不可能的。