【发布时间】:2017-07-04 02:53:12
【问题描述】:
我创建了一个表 Suppliers n MySQL
供应商描述:
Supplier_ID varchar(5) NOT NULL
Supplier_Name varchar(30)
Supplier_Address varchar(50)
Supplier_Contact int(12)
Supplier_Email varchar(30)
PRIMARY KEY(Supplier_ID)
现在, 我想创建表产品 产品描述将是:
Product_ID varchar(5) NOT NULL
Product_Name varchar(30)
Supp_Name varchar(30)
Product_Category varchar(20)
Unit_Price int(11)
Unit_In_Stock int(11)
PRIMARY KEY(Product_ID)
FOREIGN KEY(Supp_Name) REFERENCES Suppliers(Supplier_Name)
但是当我尝试创建产品表时,它给出了一个错误:
错误 1005 (HY000):无法创建表 'csm.products'(错误:150)
CSM 是一个数据库名称。
【问题讨论】:
-
您应该引用 ID 而不是 NAME
-
@VishalRaut
juergen d的意思是引用供应商表的Supplier_ID列而不是Supplier_Name列。您不能拥有引用非主键列的引用键。
标签: mysql foreign-keys primary-key create-table