我试图在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)
);
研究告诉我语法是正确的,但是这段代码会返回以下错误。
显然,解决方案可能涉及称为“InnoDB'”的内容。我该如何用它来解决我的问题?
答案 0 :(得分:1)
语法很好,但问题在于FORIEGN KEY
语句,如下所示。您无法在非键列上创建FK。在BIDS
表格中,BIDID
定义为Primary Key
而不是CLIENTID
FOREIGN KEY (CLIENTID) REFERENCES BIDS (CLIENTID)
因此,您的FORIEGN KEY
定义实际应该是
FOREIGN KEY (CLIENTID) REFERENCES BIDS (BIDID)