如何解决插入源自 FK 的表时,具有 FK 的表的外键错误
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 举报,一经查实,本站将立刻删除。