所以我在创建表时遇到了一个小问题。问题在于我尝试为另一个表创建外键。我目前正在使用MYSQL2008管理R2快递,所以没有设计师。继承我的两张桌子
use teckDB;
CREATE TABLE inventory
(
primId int NOT NULL PRIMARY KEY,
prodName VarChar(255),
quantity int,
prodCost MONEY,
prodDesc VARCHAR(255)
);
CREATE TABLE orderTB
(
primId INT NOT NULL PRIMARY KEY,
orderId INT NOT NULL,
created date,
prodId INT,
);
这两个表没有问题。但是,当创建thrid时,会导致出现此错误消息。
Msg 1769,Level 16,State 1,Line 3外键'orderTB'引用 引用表'CustomerTB'中的列'orderTB'无效。消息1750, 等级16,状态0,行3无法创建约束。见前 错误。
在......的第三张桌子上。
CREATE TABLE CustomerTB
(
primId INT NOT NULL PRIMARY KEY,
orderId INT, FOREIGN KEY (orderTB) REFERENCES orderTB(orderId),
fName VARCHAR(50),
lName VARCHAR(50),
addLN1 VARCHAR(255),
addLN2 VARCHAR(255),
addCity VARCHAR(255),
addPro VARCHAR(255),
addPST VARCHAR(7)
);
答案 0 :(得分:0)
试试这个
FOREIGN KEY (iparent_id) REFERENCES innodb_parent (iparent_id)
答案 1 :(得分:0)
我认为这有助于解决您的问题
答案 2 :(得分:0)
在" orderId INT"之后你有一个额外的逗号,你的外键语法错误。
这应该有效:
CREATE TABLE CustomerTB
(
primId INT NOT NULL PRIMARY KEY,
orderId INT REFERENCES orderTB(orderId),
fName VARCHAR(50),
lName VARCHAR(50),
addLN1 VARCHAR(255),
addLN2 VARCHAR(255),
addCity VARCHAR(255),
addPro VARCHAR(255),
addPST VARCHAR(7)
);
上测试