当我尝试将这些表源到MySQL中时,它创建了所有的表。然后我开始填充表,它不会让我填充最后一个表Rental_Invoice。有什么建议吗?
错误是
错误1452 (23000):无法添加或更新子行:外键约束失败(
SFRC_HIDDEN.Rental_Invoice、约束Rental_Invoice_fk_Client_Contact外键(Client_ID)引用Client_Contact(Client_ID))
create table Client_Contact
(
Client_ID int Primary Key Auto_Increment,
Client_First_Name varchar(50) Not Null,
Client_Last_Name varchar(50) Not Null,
Client_Address varchar(50),
Client_City varchar(50) Not Null,
Client_State Char(2) Not Null,
Client_Zip_Code varchar(20) Not Null,
Client_Phone varchar(20),
Client_Email varchar(30)
);
create table Owner_Contact
( Owner_ID int Primary Key,
Owner_First_Name varchar(50) Not Null,
Owner_Last_Name varchar(50) Not Null,
Owner_Address varchar(50),
Owner_City varchar(50) Not Null,
Owner_State varchar(2) Not Null,
Owner_Zip_Code varchar(20) Not Null,
Owner_Phone varchar(20),
Owner_Email varchar(30)
);
create table Property_Info
(Property_ID varchar(20) Primary Key,
Owner_ID int Not Null,
Property_Type varchar(30) Not Null,
Pets set('Yes','No') Not Null,
Internet set('yes','No') Not Null,
constraint Property_Info_fk_Owner_Contact
foreign key (Owner_ID)
references Owner_Contact (Owner_ID));
create table Rental_Invoice
( Invoice_ID int Primary Key,
Property_ID varchar(10) Not Null,
Client_ID int Not Null,
Arrival_Date date Not Null,
Departure_Date date Not Null,
Deposit_Amount decimal(5,2) Not Null,
Pet_Deposit_Amount decimal(7,2),
Pet_Type enum('cat', 'dog', ''),
Cleaning_Fee decimal(5,2) Not Null,
Rental_Rate decimal(5,2) Not Null,
Method_Of_Payment varchar(20) Not Null,
constraint Rental_Invoice_fk_Client_Contact foreign key (Client_ID) references Client_Contact (Client_ID)
);发布于 2015-11-26 03:28:35
初始问题
只是随机猜测,因为我目前还没有安装MySQL。但是,依赖表中的Client_ID是一个VARCHAR,它引用父表中的一个整数列。
编辑后的
外键约束是通过将行插入到Rental_Invoice中没有相应行的Client_Contact引起的。换句话说,您的数据违反了Rental_Invoice_fk_Client_Contact外键约束,该约束要求Rental_Invoice.Client_ID使用匹配的Client_ID引用Client_Contact中的现有行。
https://stackoverflow.com/questions/33929918
复制相似问题