如何创建联合(复合)外键

怎么创建联合(复合)外键

compound Foreign Key

不知道翻译成联合主键比较好 还是复合主键?

tpc-h的里面有一个表 字段说明是这样的

L_PARTKEY identifier Foreign key to P_PARTKEY, first part of the

  compound Foreign Key to (PS_PARTKEY,

  PS_SUPPKEY) with L_SUPPKEY

L_SUPPKEY Identifier Foreign key to S_SUPPKEY, second part of the

  compound Foreign Key to (PS_PARTKEY,PS_SUPPKEY) with L_PARTKEY

单个外键可以用references来建立

像这种的复合主键应该如何建立?求大神指教!



compound Foreign Key

不知道翻译成联合主键比较好 还是复合主键?

都不对! 是复合
键。




compound Foreign Key

复合外键。




复合外键只需要把引用的数据列放在一起,如果不是全部引用,需要前向(从前面的开始区),比如

mysql> create table A( a int ,b int ,primary key(a,b));

Query OK, 0 rows affected (0.45 sec)

复合主键

现在要想引用主键

mysql> create table B(c int ,foreign key(c) references A(b));

ERROR 1005 (HY000): Can’t create table ‘.\test\b.frm’ (errno: 150)

这并非前向引用,错误

mysql> create table B(c int ,foreign key(c) references A(a));

Query OK, 0 rows affected (0.20 sec)

先引用a,没有任何问题

现在同时引用a,b这就是你说的复合外键

mysql> create table C(c int ,d int,foreign key(c,d) references A(a,b));

Query OK, 0 rows affected (0.26 sec)

没有任何问题

重点是记住前向引用,这与索引很像。

如何创建联合(复合)外键

相关文章:

你感兴趣的文章:

标签云: