在phpMyAdmin(MySQL)中创建外键

时间:2014-11-20 22:27:33

标签: php mysql phpmyadmin key create-table

我试图在phpMyAdmin上创建一个MySQL数据库。我能够毫无困难地创建表,但我还想添加一些外键。在这种情况下,我想通过CLIENTID属性链接BIDS和CLIENTS表。

CREATE TABLE BIDS (
 BIDID               NUMERIC(3) NOT NULL PRIMARY KEY,
 CLIENTID            NUMERIC(3) NOT NULL
 );

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

研究告诉我语法是正确的,但是这段代码会返回以下错误。

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

显然,解决方案可能涉及称为“InnoDB'”的内容。我该如何用它来解决我的问题?

1 个答案:

答案 0 :(得分:1)

语法很好,但问题在于FORIEGN KEY语句,如下所示。您无法在非键列上创建FK。在BIDS表格中,BIDID定义为Primary Key而不是CLIENTID

FOREIGN KEY (CLIENTID) REFERENCES BIDS (CLIENTID)

因此,您的FORIEGN KEY定义实际应该是

FOREIGN KEY (CLIENTID) REFERENCES BIDS (BIDID)

在此处查看演示http://sqlfiddle.com/#!2/f1c9ec