例子:
mysql>CREATE TABLE categories (
->category_id tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
->name varchar(30) NOT NULL,
->PRIMARY KEY(category_id)
->) ENGINE=INNODB
mysql>CREATE TABLE articles (
->article_id INT(11) unsigned NOT NULL AUTO_INCREMENT,
->title varchar(255) NOT NULL,
->category_id tinyint(3) unsigned NOT NULL,
->member_id int(11) unsigned NOT NULL,
->INDEX (category_id),
->FOREIGN KEY (category_id) REFERENCES categories (category_id),
->PRIMARY KEY(article_id)
->) ENGINE=INNODB
外键名是什么:在上面的例子中category_id
那就需要先删除主表里的记录,再删除子表里的记录。
比如有如下数据:
A表
uid name
1 张三
2 李四
B表
uid 科目 分数
1 数学 90
1 语文 80
2 数学 70
2 语文 60
现在要删除A表里张三的记录,如果有外键,直接
delete from A where uid=1这样是删除不了的。
所以要先删除B表里uid=1的记录再执行上边这句
delete from B where uid=1然后再执行
delete from A where uid=1就可以了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)