如何解决MySQL:“删除级联”不起作用
我有这张桌子:
CREATE TABLE `parameter` (
`id` int(11) NOT NULL,`name` varchar(500) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `parameter`
ADD PRIMARY KEY (`id`);
ALTER TABLE `parameter`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
CREATE TABLE `son` (
`id_parameter` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `son`
ADD KEY `id_parameter` (`id_parameter`);
ALTER TABLE `son`
ADD CONSTRAINT `son_ibfk_1` FOREIGN KEY (`id_parameter`) REFERENCES `parameter` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
我希望从“参数”中删除一行后,“儿子”表中的子行将被删除,但事实并非如此..
编辑
mysql> CREATE TABLE `parameter` (
-> `id` int(11) NOT NULL,-> `name` varchar(500) NOT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK,0 rows affected (0.06 sec)
mysql>
mysql> ALTER TABLE `parameter`
-> ADD PRIMARY KEY (`id`);
Query OK,0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
mysql> ALTER TABLE `parameter`
-> MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
Query OK,0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
mysql>
mysql> CREATE TABLE `son` (
-> `id_parameter` int(11) NOT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK,0 rows affected (0.04 sec)
mysql>
mysql> ALTER TABLE `son`
-> ADD KEY `id_parameter` (`id_parameter`);
Query OK,0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
mysql> ALTER TABLE `son`
-> ADD CONSTRAINT `son_ibfk_1` FOREIGN KEY (`id_parameter`) REFERENCES `parameter` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Query OK,0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
mysql> insert into parameter select 1,'aa';
Query OK,1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> insert into son select 1;
Query OK,1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql>
mysql> delete from parameter;
Query OK,1 row affected (0.00 sec)
mysql> select * from son;
+--------------+
| id_parameter |
+--------------+
| 1 |
+--------------+
1 row in set (0.00 sec)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。