簡體   English   中英

SQL新手,插入“表”錯誤

[英]NEW TO SQL, INSERT INTO 'TABLE' Error

我是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);

到目前為止沒有問題。 但是,當我嘗試將記錄插入表中時,出現以下錯誤:

錯誤1452(23000):無法添加或更新子行:外鍵約束失敗(Database.ACCOUNT,CONSTRAINT fk_ACCOUNT_OUTLET1外鍵(OUTLET_out_ID)參考出口(out_ID))

我檢查了我的出口參考表:

    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);

我收到上述錯誤。

您需要將數據插入到OUTLET_out_ID引用的Outlet表中,因為這是NON-NULL列,但是是foreign key但尚未創建鍵,因此您需要相應地對插入進行重新排序。

您也不能跳過此值,因為它是NON-NULL並且當前插入失敗,因為您沒有給它提供有效的外鍵引用。

將數據插入你的外鍵約束首先源表,然后將賬戶數據第二

另外,插入到“出口”表中的數據需要與外鍵指示的“帳戶”表中引用的值相對應。


我個人認為,在這些數據插入情況下,簡單地插入沒有FK約束的數據並在插入數據后添加這些條件會更容易。 親身。

很高興看到您的OUTLET表腳本; 但是,這里還有一些更明顯的東西:字段OUTLET_out_ID設置為NOT NULL並且您的INSERT腳本沒有該字段的值。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM