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来建立
像这种的复合主键应该如何建立?求大神指教!

解决方案 »

  1.   

    compound Foreign Key
    不知道翻译成联合主键比较好 还是复合主键?
    都不对! 是复合外键。
      

  2.   

    单个外键可以用references来建立
    像这种的复合主键应该如何建立?求大神指教!你的单个的语句是什么?贴出来? 同样加上一个字段在()中就行了。
      

  3.   

    compound Foreign Key
    复合外键。
      

  4.   

    复合外键只需要把引用的数据列放在一起,如果不是全部引用,需要前向(从前面的开始区),比如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)没有任何问题
    重点是记住前向引用,这与索引很像。