Mysql 创建一个表,SQL。基本材料
所以我在创建表时遇到了一个小问题。问题在于我试图创建另一个表的外键。我目前正在使用MYSQL2008管理R2 express,因此没有设计师。这是我的两张桌子Mysql 创建一个表,SQL。基本材料,mysql,sql,database,database-table,Mysql,Sql,Database,Database Table,所以我在创建表时遇到了一个小问题。问题在于我试图创建另一个表的外键。我目前正在使用MYSQL2008管理R2 express,因此没有设计师。这是我的两张桌子 use teckDB; CREATE TABLE inventory ( primId int NOT NULL PRIMARY KEY, prodName VarChar(255), quantity int, prodCost MONEY, prodDesc VARCHAR(255) ); CREATE
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,
);
那两张桌子没有问题。但是,当创建第三个时,会导致此错误消息
Msg 1769,第16级,状态1,第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)
);
试试这个
FOREIGN KEY (iparent_id) REFERENCES innodb_parent (iparent_id)
我认为这应该有助于解决你的疑问
在“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)
);
在上进行了测试,所以我只是简单地创建了表,并尝试使用alter语句获取外键。使用teckDB;Alter Table CustomerTB ADD外键(orderId)引用orderTb(orderId);仍然有相同的错误消息,但是。。。