2016-02-04 104 views
0

我是SQL新手,在我的語法中有一個我不明白的錯誤。任何幫助/建議?SQL新增內容,插入'表'錯誤

我創建了一個表中調用ACCOUNT

CREATE TABLE `ACCOUNT` (
    `acc_ID` INT NOT NULL, 
    `acc_name` VARCHAR(45) NOT NULL, 
    `acc_manager` VARCHAR(45) NOT NULL, 
    `acc_balance` VARCHAR(45) NOT NULL, 
    `acc_transactionLimit` INT NOT NULL, 
    `acc_creditLimit` INT NOT NULL, 
    `OUTLET_out_ID` INT NOT NULL, 
    PRIMARY KEY (`acc_ID`), 
    INDEX `fk_ACCOUNT_OUTLET1_idx` (`OUTLET_out_ID` ASC), 
    CONSTRAINT `fk_ACCOUNT_OUTLET1` 
    FOREIGN KEY (`OUTLET_out_ID`) 
    REFERENCES `OUTLET` (`out_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 

沒有問題爲止。但是當我嘗試將記錄插入到表中我得到以下錯誤:

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (Database.ACCOUNT, CONSTRAINT fk_ACCOUNT_OUTLET1 FOREIGN KEY (OUTLET_out_ID) REFERENCES OUTLET (out_ID))

我重新簽上我的OUTLET參考表:

CREATE TABLE `OUTLET` (
    `out_ID` INT NOT NULL, 
    `out_name` VARCHAR(45) NOT NULL, 
    `out_manager` VARCHAR(45) NOT NULL, 
    `out_address` VARCHAR(100) NOT NULL, 
    `out_phone` VARCHAR(15) NOT NULL, 
    `out_email` VARCHAR(45) NULL, 
    PRIMARY KEY (`out_ID`)) 

我沒有發現任何問題,它。

然而,當試圖插入:

INSERT INTO ACCOUNT(acc_ID, acc_name, acc_manager, acc_balance, acc_transactionLimit, acc_creditLimit) VALUES 
(01, 'White', 'Mr.Good', '352.00', 1000.00, 500.00), 
(02, 'Hopkins', 'Mr.Good', '403.00', 1000.00, 500.00), 
(03, 'Aumbry', 'Mr.Good', '240.00', 1000.00, 500.00), 
(04, 'Kaze', 'Mr.Good', '76.00', 1000.00, 500.00), 
(05, 'Ashley', 'Mr.Bad', '24.00', 1000.00, 500.00), 
(06, 'Zoara', 'Mr.Bad', '503.00', 1000.00, 500.00), 
(07, 'Shawn', 'Mr.Bad', '34.00', 1000.00, 500.00), 
(08, 'Obsie', 'Mr.Bad', '278.00', 1000.00, 500.00), 
(09, 'Ven', 'Mr.Mr.Bad', '345.00', 1000.00, 500.00), 
(10, 'Zhan', 'Mr.Mr.Bad', '491.00', 1000.00, 500.00); 

我得到上述錯誤。

+0

你有任何表中的數據嗎?這通常會導致發生這種錯誤。 – PhpDude

+0

作爲一個純粹的事物,值得注意的是,MySQL只是一種類型的SQL數據庫,並且有許多SQL數據庫可用。 – Martin

+0

你已經聲明OUTLET_out_ID是一個外鍵,但你的插入沒有任何賦值。 –

回答

1

您需要將數據插入到出口表的OUTLET_out_ID引用,因爲這是一個NON-NULL列,但爲foreign key,但沒有鑰匙尚未作出,所以你需要相應地重新排列你的刀片。

你也不能跳過這個值,因爲它的值爲NON-NULL,而你當前的插入失敗,因爲你沒有給它一個有效的外鍵引用。

將數據插入到你的外鍵約束首先源表,然後將賬戶數據

此外,插入到Outlet表中的數據需要對應於Accounts表中引用的值,如由外鍵指定的。


我個人認爲這是在這些數據中插入的情況下很容易直接t插入不FK約束數據和數據插入完成後添加這些條件。親自。

1

看到你的OUTLET表格腳本本來是很好的;但是這裏有一些更明顯的字段:字段OUTLET_out_ID設置爲NOT NULL,並且您的INSERT腳本沒有該字段的值。

因此,請將該字段修改爲OUTLET_out_ID INT NULL或在INSERT查詢中包含值。

+0

我在提交過程中遇到了錯誤,我的意圖是顯示OUTLET表格腳本,並進行編輯和更正以備將來參考。我想我現在明白我的問題更好了。感謝您的反饋和幫助。 – Zion