当INSERT INTO命令给出外键错误消息时,MYSQL中的哪些命令可用于插入新数据?如果插入命令不起作用,如何在mysql中插入数据
-1
A
回答
1
你不知道。您可以用满足数据库要求的方式制作您的数据和/或语句。
0
您有INSERT ... ON DUPLICATE KEY UPDATE
来处理重复键错误,但您没有一个用于外键错误。
如果你要处理的重复键指http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
0
,如果你已经明确声明“外键错误消息”你收到它会有所帮助。但是,假设它是最可能的候选者之一:
- 错误1216:Cannot add or update a child row: a foreign key constraint fails;或
- 错误1452:Cannot add or update a child row: a foreign key constraint fails (%s)。
这两个消息都表示相同的事情:您试图插入(或更新)记录,以便表示外键的列将包含引用不存在的记录的值父表。
在下面的例子中,人们会收到错误1216在试图插入/更新与CustomerID
订单并不在Customers
表存在:
CREATE TABLE Customers (
CustomerID SERIAL
) Engine=InnoDB;
CREATE TABLE Orders (
OrderID SERIAL,
CustomerID BIGINT UNSIGNED NOT NULL,
FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID)
);
INSERT INTO Customers
(CustomerID)
VALUES
(100),
(200)
;
INSERT INTO Orders
(OrderID, CustomerID)
VALUES
(1, 200), -- okay, as CustomerID 200 exists
(2, 300) -- fails, as CustomerID 300 does not exist
;
正如其他人所建议的,最好解决此问题的方法是修改数据库活动,以便满足外键约束。
或者,您可以从数据库中删除外键约束(但是RDBMS不会为您执行参照完整性,这通常是人们希望它执行的操作)。或者可以暂时禁用MySQL的参照完整性检查—,但是通常只在加载已知具有参照完整性的数据时按照可能导致约束违规的顺序进行:建议在通用应用程序中使用而不是。
相关问题
- 1. PHP MYSQL插入命令不起作用
- 2. MySQL插入数据不起作用
- 3. MYSQL如果不存在插入数据
- 4. 使用插入命令向上插入到MySQL数据库
- 5. 插入命令在MySQL
- 6. mysqli和mysql插入数据库命令
- 7. 插入如果不存在UPDATE如果存在不起作用
- 8. 我如何插入与MySQL插入命令?
- 9. MYSQL数据插入查询在Python中不起作用
- 10. 如何在MySQL表中插入数据?
- 11. 如何插入新的数据,如果USER_ID不MySQL表存在
- 12. 如何在项目中插入()函数MySQL命令
- 13. Mysql插入命令语法
- 14. SQLAlchemy的插入数据不起作用
- 15. 插入数据库不起作用
- 16. 数据插入循环不起作用
- 17. 数据库插入不起作用
- 18. QSqlQuery插入数据库不起作用
- 19. 插入命令不要插入数据库?
- 20. 插入数据(如果不存在)
- 21. SQLite插入命令不起作用--- VB.NET中没有错误
- 22. php插入mysql不起作用
- 23. mysql concat并插入不起作用
- 24. mysql插入查询不起作用
- 25. 的Android MYSQL插入不起作用
- 26. 在mysql中插入数据
- 27. 在mysql中插入数据
- 28. 插入php数组数据到mysql不起作用
- 29. MySQL的条件插入 - 如果不存在插入 - 多值插入
- 30. MySQL:高级插入如果不存在
你只需要执行'INSERT'语句。如果发生错误,将会抛出错误消息。 – 2013-02-27 16:15:23
外键约束可能存在以保持数据的完整性。我建议你制定约束条件,而不是试图规避它。 – 2013-02-27 16:15:43