2013-06-26 90 views
0

我创建了一个包含4个表的数据库。 但是当我输入第四个表时会出现一个错误,这个表有一个主键和3个外键给其他表。 下面是使用mySQL的表:创建数据库表中的问题

CREATE TABLE Product(
id_product SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
product_name VARCHAR(30) NOT NULL, 
image SMALLINT UNSIGNED NOT NULL , 
stock SMALLINT UNSIGNED NOT NULL, 
category SMALLINT UNSIGNED NOT NULL , 
PRIMARY KEY(id_product), 
CONSTRAINT fk_image_id_image 
FOREIGN KEY (image) 
REFERENCES Image(id_image), 
CONSTRAINT fk_stock_id_stock 
FOREIGN KEY (stock) 
REFERENCES Stock(id_stock), 
CONSTRAINT fk_category_id_category 
FOREIGN KEY (category) 
REFERENCES Category(id_category) 
) 
ENGINE=INNODB; 

当我执行它,将出现一条错误如下:

#1005 - 无法创建表 'gestion_de_stock.product'(错误:150)

+0

可能重复[MySQL:Can not create table(errno:150)](http://stackoverflow.com/questions/4061293/mysql-cant-create-table-errno-150) –

+0

你能测试吗创建表(执行,检出错误,根据需要放弃重复),每次消除一个不同的fk /约束,直到找出哪个问题导致问题? –

回答

0

确保您的外键中使用的列在两个表中都具有相同的数据类型。

+0

和相同的定义/尺寸/有符号或无符号/等 –

+0

几乎相同的一切除了名称。 –

+0

你是对的,在某些定义中这是一个简单的错误 – Maha