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_SUPPKEYL_SUPPKEY Identifier Foreign key to S_SUPPKEY, second part of the
compound Foreign Key to (PS_PARTKEY,PS_SUPPKEY) with L_PARTKEY单个外键可以用references来建立
像这种的复合主键应该如何建立?求大神指教!
不知道翻译成联合主键比较好 还是复合主键?tpc-h的里面有一个表 字段说明是这样的
L_PARTKEY identifier Foreign key to P_PARTKEY, first part of the
compound Foreign Key to (PS_PARTKEY,
PS_SUPPKEY) with L_SUPPKEYL_SUPPKEY Identifier Foreign key to S_SUPPKEY, second part of the
compound Foreign Key to (PS_PARTKEY,PS_SUPPKEY) with L_PARTKEY单个外键可以用references来建立
像这种的复合主键应该如何建立?求大神指教!
不知道翻译成联合主键比较好 还是复合主键?
都不对! 是复合外键。
像这种的复合主键应该如何建立?求大神指教!你的单个的语句是什么?贴出来? 同样加上一个字段在()中就行了。
复合外键。
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)没有任何问题
重点是记住前向引用,这与索引很像。