【问题标题】:Inserting data as foreign key constraint in grails在grails中插入数据作为外键约束
【发布时间】:2012-08-22 05:42:32
【问题描述】:

继续reading-from-XML-and-storing-the-values-in-database-using-grails的帖子

我面临着另一个问题。由于员工 id 作为外键与其他表相关,因此我想如何将数据插入数据库而不发生冲突,我想在 grails 代码中添加什么以避免下面显示的错误。

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 不能 添加或更新子行 L 外键约束失败.. ( CONSTRAINT 'EMPLOYEE_ID_HEADER' FOREIGN KEY ('EMPLOYEE_ID') REFERENCES 'employee_header'('employee_id'))

这里employee_id 是一个列,employee_header 是一个单独的表,其中包含employee_id 作为外键。

【问题讨论】:

    标签: grails


    【解决方案1】:

    最后我得到了答案,当您在数据库中插入值时,相关的外键表最初会受到影响。所以为了处理这种情况,我们必须先插入外键相关的表,然后我们需要准确添加的表。

    作为参考,一开始我给出了这样的代码

    sql.executeInsert("insert into order_item (order_id,product_id,
    order_item_seq_id) values (${order_id},${product_id},${order_item_seq_id})")

    sql.executeInsert("insert into product(product_id) values(${product_id})")

    这里先插入order_item表,再插入外键约束表product,所以数据没有插入。所以正确的代码是

    sql.executeInsert("insert into order_header(order_id) values(${order_id})") sql.executeInsert("insert into product(product_id) values(${product_id})") sql.executeInsert("insert into order_item (order_id,product_id,
    order_item_seq_id) values (${order_id},${product_id},${order_item_seq_id})")

    现在这会成功插入数据而没有错误。

    【讨论】:

      猜你喜欢
      • 2013-12-17
      • 1970-01-01
      • 2018-05-29
      • 2021-12-09
      • 1970-01-01
      • 2018-04-04
      • 2016-06-04
      • 2018-03-31
      • 1970-01-01
      相关资源
      最近更新 更多