好吧我有兩個表。他們都有鑰匙。我有另一個表引用這兩個鍵。當我添加到第三個表中時,如果任何一個鍵不存在於前兩個表中,我不能將該元組插入到第三個表中。我正在插入phpMyAdmin。謝謝。使用尚未創建的外鍵插入到mySQL表中
0
A
回答
1
編輯:
對不起,誤讀了你的問題。 Mysql只支持某些引擎的限制。 InnoDB是我所瞭解和普遍使用的,但其他人可能真的不確定。因此,與INNO DB你幾乎需要日以下模式:
CREATE TABLE my_table_a (
`id` INTEGER UNSIGNED NOT NULL auto_increment,
# your other column definitions
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE my_table_b (
`id` INTEGER UNSIGNED NOT NULL auto_increment,
# your other column definitions
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE my_table_a_b (
`id` INTEGER UNSIGNED NOT NULL auto_increment,
`table_a_id` INTEGER UNSIGNED NOT NULL,
`table_b_id` INTEGER UNSIGNED NOT NULL
PRIMARY KEY (`id`),
KEY (`table_a_id`),
KEY (`table_b_id`),
CONSTRAINT `ab_FK_a`
FOREIGN KEY (`table_a_id`)
REFERENCES `my_table_a` (`id`),
CONSTRAINT `ab_FK_b`
FOREIGN KEY (`table_b_id`)
REFERENCES `my_table_b` (`id`)
) ENGINE=InnoDB;
SET FOREIGN_KEY_CHECKS=0;
# Your INSERTS
SET FOREIGN_KEY_CHECKS=1;
這將禁用FK檢查AST的SQL語句反映,直到你完成你的插入之後。如果我沒有記錯的話,它會再次檢查鑰匙。正因爲如此,您可能想要使用一個事務,以便您可以回滾,如果您犯了一個錯誤,最終不會匹配鍵。否則,你可能有部分數據這是從來沒有的樂趣:-)
0
我不知道約束,但是你可以使用這個插入查詢:
INSERT INTO TAB3(TAB3_key1,TAB3_key2)SELECT VAL1,VAL2 FROM TAB1 JOIN TAB2 ON EXISTS(SELECT * FROM TAB1 JOIN TAB2 ON TAB1_key = val1 AND TAB2_key = val2)LIMIT 1;
其中val1,val2 - 要插入的值。
相關問題
- 1. Mysql,未能創建外鍵
- 2. 無法使用外鍵創建mysql表
- 3. 插入到外鍵表中
- 4. 用外鍵插入表中?
- 5. MySQL:使用引用由外鍵組成的主鍵的外鍵創建表
- 6. MySQL使用外鍵插入查詢
- 7. 在MySQL中創建外鍵
- 8. 在MySQL中創建外鍵
- 9. 休眠@ManyToOne未能properply插入,因爲FK ID尚未創建
- 10. MySQL插入到帶有2個外鍵的表中
- 11. MySQL創建多個外鍵的表
- 12. MySQL和創建外鍵的
- 13. 插入到交集表引用外鍵
- 14. 使用PHP插入到帶有外鍵的SQL表中
- 15. 將外鍵插入到使用C#的表格中
- 16. 插入值更新mysql中的外鍵
- 17. 麻煩使用創建表的外鍵
- 18. 使用外鍵將BULK INSERT插入表
- 19. MYSQL創建表,約束,外鍵
- 20. MYSQL外鍵Errno(150)無法創建表
- 21. 尚未創建的文件
- 22. MySQL不能創建外鍵
- 23. 實體框架 - 使用外鍵插入到多個表中
- 24. 如何使用JPA將外鍵插入到表中?
- 25. SQL Server使用外鍵創建表
- 26. 通過未創建的外鍵創建連接表
- 27. 插入到創建新表
- 28. 如何在MySQL或JDBC表中自動插入外鍵引用?
- 29. 有關在MySQL中插入外鍵約束的建議
- 30. 在MySQL中使用值插入創建冪等表和索引
不回答問題。事實上,刪除所有與要求相反的完整性檢查。 – 2010-04-09 20:55:28
是的,我真的不明白他在說什麼。我希望有一種方法,如果在一個表中不存在密鑰,並且我嘗試將其添加爲外鍵,則不起作用。 – ranzy 2010-04-09 20:57:16
哦,我誤讀了..我雖然他想添加相關記錄,但不是爲了他的批次。見上面的編輯。 – prodigitalson 2010-04-10 00:05:23