在mysql中创建一个表关系

时间:2013-03-26 08:19:38

标签: mysql foreign-keys relation jointable

我有一张这样的表:

 CREATE TABLE `jngi_category` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `Name` varchar(50) NOT NULL,
      `parent` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

我希望,当父母删除它的所有子删除时。 如果存在任何由外键定义的关系,那么它会自动执行此操作。

2 个答案:

答案 0 :(得分:4)

使用parent

在此列ON DELETE CASCADE上添加外键约束
CONSTRAINT `FK_ParentCategory` FOREIGN KEY (`parent`)
REFERENCES jngi_category(id) ON DELETE CASCADE ON UPDATE CASCADE

SQL Fiddle Demo

答案 1 :(得分:2)

试试这个sql

CREATE TABLE jngi_category (
      id int(11) NOT NULL auto_increment,
      Name varchar(50) NOT NULL,
      parent int(11),
      PRIMARY KEY (id),
      foreign key (parent) references jngi_category(id) on delete cascade
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ;