微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

插入源自 FK 的表时,具有 FK 的表的外键错误

如何解决插入源自 FK 的表时,具有 FK 的表的外键错误

我一直在尝试在 PHP 中运行此查询

INSERT INTO inventory (prodID,userID,qty) VALUES ((SELECT ID FROM products WHERE cod = :COD),9,:QTY);

它没有执行,所以我把它放在MysqL工作台中,看看是否有错误。 我一直这样做,这出现了:

错误代码:1452。无法添加或更新子行:外键约束失败 (database.expiration,CONSTRAINT inventoryID FOREIGN KEY ({{1} }) 参考 inventoryID (inventory))

我不明白为什么 FK 到期限制会出现错误。 InventoryID 是库存的 PK AI。有人可以帮我吗?

编辑:

表架构:

产品

  • ID - PK AI
  • 鳕鱼
  • 姓名
  • standard_expiration

库存

用户

  • 用户 ID - PK AI
  • 姓名

到期

  • ExpID - PK AI
  • inventoryID - FK
  • 输入日期
  • estimated_exp

我在 Inventory 上插入后有一个触发器来注册最后一个 ID 和输入到期日期,同时还通过添加当前时间 + standard_exp 来计算estimated_exp。我是这样写的:

inventoryID

关于PHP: 我使用了 PDO::errorInfo() 并得到了 SET @inv = (SELECT last_insert_id()); SET @prod = (SELECT (prodID) from inventory WHERE inventoryID = @inv); SET @stdexp = (SELECT (standard_exp) from products WHERE ID = @prod); SET @estmexp = ( SELECT ADDDATE(curdate(),@stdexp)); INSERT INTO expiration (inventoryID,input_Date,estimated_exp) VALUES (@inv,curdate(),@estmexp);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。