[英]How to add a nullable column as part of primary composite key of the table?
[英]How to add composite primary key to table
create table d(id numeric(1), code varchar(2))
创建上表后,如何在两个字段和外键上添加复合主键?
alter table d add constraint pkc_Name primary key (id, code)
应该这样做。 基本主键/索引有很多选项,具体取决于您使用的DB。
在Oracle中,您可以这样做:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
Chris提供的ALTER TABLE
语句应该可以工作,但首先需要声明列NOT NULL
。 主键的所有部分都必须为NOT NULL
。
您不需要先创建表,然后在后续步骤中添加密钥。 您可以在创建表时添加主键和外键:
此示例假定存在我们希望使用外键引用的表( 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
)
注意:在创建外键之前,必须有一个要引用的表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.