将复合外键添加到现有sql表

时间:2017-02-21 07:21:08

标签: sql

我有以下表格:

create table x (a int primary);
create table y (b int primary);
create table z (c int, d int, e int);

我(后来故意)将复合外键添加到z:

alter table z add constraint c foreign key (c) references x(a)
alter table z add constraint d foreign key (d) references y(b)

是否可以在单个sql指令中将此复合外键添加到现有表中?

1 个答案:

答案 0 :(得分:0)

您不能将其创建为单个复合约束,因为它引用了两个不同的表 - 但是可以(根据您的DBMS)在单个sql指令中添加这两个约束(尽管我没有&# 39;认为通常建议这样做。你可以,例如查找DB2SQLServer的示例。

所以这可能是:

ALTER TABLE z 
  ADD CONSTRAINT c FOREIGN KEY (c) REFERENCES x(a) 
  ADD CONSTRAINT d FOREIGN KEY (d) REFERENCES y(b)