【发布时间】:2011-02-07 16:37:00
【问题描述】:
我一直在尝试删除级联,但它似乎不起作用。我确定我遗漏了一些明显的东西,谁能帮我找到它?
我希望删除“articles”表会触发删除“article_section_lt”表中的相应行。
CREATE TABLE articles (
id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
url_stub VARCHAR(255) NOT NULL UNIQUE,
h1 VARCHAR(60) NOT NULL UNIQUE,
title VARCHAR(60) NOT NULL,
description VARCHAR(150) NOT NULL,
summary VARCHAR(150) NOT NULL DEFAULT "",
html_content TEXT,
date DATE NOT NULL,
updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)ENGINE=INNODB;
CREATE TABLE article_sections (
/* blog, news etc */
id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
url_stub VARCHAR(255) NOT NULL UNIQUE,
h1 VARCHAR(60) NOT NULL,
title VARCHAR(60) NOT NULL,
description VARCHAR(150) NOT NULL,
summary VARCHAR(150) NOT NULL DEFAULT "",
html_content TEXT NOT NULL DEFAULT ""
)ENGINE=INNODB;
CREATE TABLE article_section_lt (
fk_article_id INTEGER UNSIGNED NOT NULL REFERENCES articles(id) ON DELETE CASCADE,
fk_article_section_id INTEGER UNSIGNED NOT NULL
)ENGINE=INNODB;
【问题讨论】:
-
只是为了验证,在您创建了如上所示的表之后,然后在
article_sections中为给定的articles行创建一系列行,然后尝试删除该articles行和然后呢?抛出外键错误还是不删除相关行?
标签: sql mysql foreign-keys innodb foreign-key-relationship