#1005 - 无法创建表...(错误号:150)

时间:2014-03-20 18:34:38

标签: mysql sql errno

我按正确的顺序拥有所有主键和删除表。

我基本上希望stockID成为退款表中的外键。

我的架构看起来像这样......

CREATE TABLE refunds (
refundID SMALLINT AUTO_INCREMENT,
stockID SMALLINT,
refundDate DATE,
FOREIGN KEY (stockID) REFERENCES tblStock(stockID),
PRIMARY KEY (refundID)
);

CREATE TABLE tblStock (
stockID SMALLINT AUTO_INCREMENT,
stockName VARCHAR(60),
StockNumbers SMALLINT
);

3 个答案:

答案 0 :(得分:1)

当引用另一个表进行外键引用时,该表必须已经存在。并且,被引用的列应该是主键。试试这个:

CREATE TABLE tblStock (
  stockID SMALLINT AUTO_INCREMENT PRIMARY KEY,
  stockName VARCHAR(60),
  StockNumbers SMALLINT
);

CREATE TABLE refunds (
  refundID SMALLINT AUTO_INCREMENT,
  stockID SMALLINT,
  refundDate DATE,
  FOREIGN KEY (stockID) REFERENCES tblStock(stockID),
  PRIMARY KEY (refundID)
);

答案 1 :(得分:0)

FOREIGN KEY (stockID) REFERENCES tblStock(stockID)

引用一个尚不存在的表。首先创建tblStock

答案 2 :(得分:0)

您正在引用一个不存在的表。首先创建它。

此外,您还需要索引要引用的键。确保外键中引用的任何值实际存在。