在MySQL中创建外键

时间:2014-11-20 18:37:20

标签: php mysql foreign-keys create-table

我试图通过MySQL中的外键将两个表链接在一起。 CLIENTS表应链接到具有客户机ID属性的另一个表(BIDS)。

CREATE TABLE CLIENTS (
 CLIENTID            NUMERIC(3) NOT NULL,
 FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
 PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
 );

但是,当我尝试执行代码时,MySQL会返回此错误。

  

#1005 - 无法创建表格'客户端' (错误:150)

它似乎不是语法错误,所以有人知道造成问题的原因或我该如何修复它?

1 个答案:

答案 0 :(得分:1)

使用多个列创建包含主键的表时,必须在查询中指定 -

CREATE TABLE CLIENTS (
 CLIENTID NUMERIC(3) NOT NULL,
 EMAILADDRESSES CHAR(64),
 PHONENUMBERS VARCHAR(16),
 CONTACTS VARCHAR(32), 
 FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
 CONSTRAINT key_name PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
);

您还必须为多列主键指定名称。为什么你想要所有这些列作为关键是一个谜。