我已经在表中设置了外键完整性。但我能够删除主表中的数据,这是子表中的参考。 会出现什么问题 实际上,它应该说删除错误就像所有引用的表数据必须被删除。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