好吧我有兩個表。他們都有鑰匙。我有另一個表引用這兩個鍵。當我添加到第三個表中時,如果任何一個鍵不存在於前兩個表中,我不能將該元組插入到第三個表中。我正在插入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. Django外鍵到一個尚未創建的模型
- 3. MySQL的外鍵創建表
- 4. 無法使用外鍵創建mysql表
- 5. 插入到外鍵表中
- 6. 創建外鍵連接兩個表,插入,刪除,並在MySQL
- 7. mysql外鍵插入
- 8. MYSQL插入外鍵
- 9. 用外鍵插入表中?
- 10. 用外鍵插入mysql
- 11. MySQL:在外鍵表中插入數據
- 12. 插入到表(錯誤1452),已創建的FKs MySQL外鍵錯誤
- 13. MySQL:使用引用由外鍵組成的主鍵的外鍵創建表
- 14. 無法在使用mysql的外鍵表中插入數據
- 15. MySQL使用外鍵插入查詢
- 16. mysql - 用外鍵創建表 - 錯誤150
- 17. 在MySQL中創建外鍵
- 18. 在MySQL中創建外鍵
- 19. 休眠@ManyToOne未能properply插入,因爲FK ID尚未創建
- 20. 使用el尚未創建的主幹?
- 21. mysql創建外鍵失敗的表
- 22. MySQL創建多個外鍵的表
- 23. MySQL插入到帶有2個外鍵的表中
- 24. MySQL和創建外鍵的
- 25. 插入到交集表引用外鍵
- 26. 將外鍵插入表中
- 27. PHP和MYSQL:插入外鍵
- 28. 無法在mysql中使用外鍵創建表
- 29. 使用PHP插入到帶有外鍵的SQL表中
- 30. 將外鍵插入到使用C#的表格中
不回答問題。事實上,刪除所有與要求相反的完整性檢查。 – 2010-04-09 20:55:28
是的,我真的不明白他在說什麼。我希望有一種方法,如果在一個表中不存在密鑰,並且我嘗試將其添加爲外鍵,則不起作用。 – ranzy 2010-04-09 20:57:16
哦,我誤讀了..我雖然他想添加相關記錄,但不是爲了他的批次。見上面的編輯。 – prodigitalson 2010-04-10 00:05:23