Errno:1452约束

时间:2015-11-26 03:04:42

标签: mysql

当我尝试将这些表源化为MySQL时,它创建了所有表。然后我开始填充表格,它不会让我填充最后一个表Rental_Invoice。有什么建议吗?

错误是

  

错误1452(23000):无法添加或更新子行:外键   约束失败(SFRC_HIDDENRental_Invoice,CONSTRAINT   Rental_Invoice_fk_Client_Contact外键(Client_ID)   参考Client_ContactClient_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)
      );

1 个答案:

答案 0 :(得分:0)

初始问题

随便猜测,因为我现在没有安装任何MySQL。但依赖表中的Client_ID是VARCHAR,它引用父表中的INTEGER列。

编辑后

外键约束是通过在SELECT中插入没有相应行的Rental_Invoice行引起的。换句话说,您的数据违反了Client_Contact外键约束,该约束要求Rental_Invoice_fk_Client_Contact引用Rental_Invoice.Client_ID中匹配Client_Contact的现有行。

相关问题