MySQL-#1215-无法添加外键约束
MySQL对我来说是新事物。我通常使用Oracle数据库。我必须将一个小数据库从Oracle10g转换为MySQL语法才能使用phpMyAdmin 我什么都试过了,但我的代码没有发现任何问题。我有这两张桌子,它们就是不能用外键连接MySQL-#1215-无法添加外键约束,mysql,sql,database,phpmyadmin,foreign-keys,Mysql,Sql,Database,Phpmyadmin,Foreign Keys,MySQL对我来说是新事物。我通常使用Oracle数据库。我必须将一个小数据库从Oracle10g转换为MySQL语法才能使用phpMyAdmin 我什么都试过了,但我的代码没有发现任何问题。我有这两张桌子,它们就是不能用外键连接 CREATE TABLE Supplier ( ID INT UNSIGNED NOT NULL AUTO_INCREMENT , Company_name VARCHAR (100) , Company_address VAR
CREATE TABLE Supplier
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT ,
Company_name VARCHAR (100) ,
Company_address VARCHAR (100) ,
Bank_account VARCHAR (100) ,
CONSTRAINT PK_Supplier PRIMARY KEY (ID)
) ;
CREATE TABLE Meat
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT ,
Initial_weight VARCHAR (50) ,
Actual_weight VARCHAR (50) ,
Date_of_delivery DATETIME ,
Durability DATETIME ,
Supplier_ID DECIMAL(38) NOT NULL ,
CONSTRAINT PK_Meat PRIMARY KEY (ID) ,
FOREIGN KEY (Supplier_ID) REFERENCES Supplier(ID)
) ;
MySQL查询结束,错误代码为:#1215-无法添加外键约束
有人在这两个表中看到一些问题吗?
Supplier\u ID
列具有DECIMAL
类型,而Supplier
表中的ID
是INT UNSIGNED
更改如下:
CREATE TABLE Supplier
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT ,
Company_name VARCHAR (100) ,
Company_address VARCHAR (100) ,
Bank_account VARCHAR (100) ,
CONSTRAINT PK_Supplier PRIMARY KEY (ID)
) ;
CREATE TABLE Meat
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT ,
Initial_weight VARCHAR (50) ,
Actual_weight VARCHAR (50) ,
Date_of_delivery DATETIME ,
Durability DATETIME ,
Supplier_ID INT UNSIGNED NOT NULL ,
CONSTRAINT PK_Meat PRIMARY KEY (ID) ,
FOREIGN KEY (Supplier_ID) REFERENCES Supplier(ID)
) ;
为
Dodavatel
提供表定义对不起,我的错误。当然,应该有一个供应商
,而不是Dodavatel
。我正在把代码从捷克语翻译成英语,但我忘了翻译最后一行的最后一部分。现在是代码实际。。当然,还是不行。。