新的SQL,插入'TABLE'错误

时间:2016-02-04 23:30:42

标签: mysql

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

我收到上述错误。

2 个答案:

答案 0 :(得分:1)

您需要将数据插入到batch_matmul()引用的 Outlet 表中,因为这是一个OUTLET_out_ID列,但是NON-NULL但是没有密钥尚未制作,因此您需要相应地重新订购插页。

您也不能跳过此值,因为它是foreign key并且您当前的插入失败,因为您没有给它一个有效的外键引用。

将数据插入外键约束第一个的源表,然后将帐户数据第二个

此外,插入Outlet表的数据需要与Accounts表中引用的值相对应,具体取决于外键。

我个人认为在这些数据插入情况下,只需插入没有FK约束的数据,并在插入数据后添加这些条件就更容易了。亲身。

答案 1 :(得分:1)

看到你的> class(df2) [1] "xts" "zoo" 表脚本会很高兴;但是这里有一些更明显的东西:字段OUTLET设置为OUTLET_out_ID,而您的INSERT脚本没有该字段的值。

因此,要么将该字段修改为NOT NULL,要么在OUTLET_out_ID INT NULL查询中包含这些值。