我已經在表中設置了外鍵完整性。但我能夠刪除主表中的數據,這是子表中的參考。 會出現什麼問題 實際上,它應該說刪除錯誤就像所有引用的表數據必須被刪除。mysql外鍵約束
回答
你指定ON DELETE CASCADE?當你創建你的FK?不知道您正在使用的發動機無論是
例如
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
這裏更多http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html您正在使用哪個存儲引擎
這兩個表必須是InnoDB表,並且innodb的性能不及myisam – 2010-01-24 16:02:06
其實我已經創建了表格,現在我有數據了。 您是否意味着我需要重新創建所有設置外鍵的表。 – ASD 2010-01-24 16:02:44
外鍵約束在那裏。除非存儲引擎設置爲InnoDB,否則MySQL不會強制執行它們。您可以執行「ALTER TABLE [table name] ENGINE = InnoDB」(http://dev.mysql.com/doc/refman/5.1/en/alter-table.html),而不是重新創建表。 – 2010-01-24 16:12:47
的MySQL不爲你做它,
你需要刪除觸發器例如之前刪除操作
聲明觸發:
http://www.java2s.com/Code/Oracle/Trigger/Createabeforedeletetrigger.htm
- 1. MySQL外鍵約束
- 2. 檢查外鍵約束MySQL
- 3. MySql外鍵約束問題
- 4. 外鍵約束失敗(MySQL)
- 5. MYSQL添加外鍵約束
- 6. MySQL - 外鍵約束錯誤
- 7. 外鍵約束
- 8. 外鍵約束
- 9. 外鍵約束
- 10. 外鍵:與外鍵約束
- 11. CakePHP&外鍵約束
- 12. SQL約束:外鍵
- 13. 與外鍵約束
- 14. 與外鍵約束
- 15. 從外鍵約束
- 16. 外鍵約束 - Pentaho
- 17. SqlAlchemy外鍵約束
- 18. Netezza外鍵約束
- 19. 外鍵約束5
- 20. 外鍵約束SQL
- 21. SQLite外鍵約束
- 22. Sql外鍵約束
- 23. MySQL - Hibernate不會創建外鍵約束
- 24. 無法添加外鍵約束MySQL Workbench
- 25. MySQL的添加外鍵約束錯誤
- 26. 從MySQL表獲取外鍵約束
- 27. MYSQL創建表,約束,外鍵
- 28. MySQL外鍵約束 - 整數列
- 29. MySQL的外鍵約束語法
- 30. 無法添加外鍵約束MySql
? 「對於除InnoDB以外的存儲引擎,MySQL服務器會分析CREATE TABLE語句中的FOREIGN KEY語法,但不會使用或存儲它。」 (MySQL參考手冊http://dev.mysql.com/doc/refman/5.1/en/ansi-diff-foreign-keys.html) – 2010-01-24 15:57:52
storge引擎是ENGINE = MyISAM – ASD 2010-01-24 16:01:37