create table d(id numeric(1), code varchar(2))
创建上表后,如何在两个字段和外键上添加复合主键?
答案 0 :(得分:29)
alter table d add constraint pkc_Name primary key (id, code)
应该这样做。基本主键/索引有很多选项,具体取决于您使用的数据库。
答案 1 :(得分:26)
在Oracle中,您可以这样做:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
答案 2 :(得分:6)
Chris提供的ALTER TABLE
语句应该有效,但首先需要声明列NOT NULL
。主键的所有部分都必须为NOT NULL
。
答案 3 :(得分:4)
您不需要先创建表,然后在后续步骤中添加密钥。您可以在创建表时添加主键和外键:
此示例假定存在我们希望使用外键引用的表(Codes
)。
CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)
如果您没有我们可以引用的表,请添加一个这样的表,以便该示例可以工作:
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
注意:在创建外键之前,您必须有一个要引用的表。
答案 4 :(得分:2)