我有一个名为'pages'的表.每个页面都有文本,视频或图像的内容类型.根据内容类型的不同,记录也会插入到文本,视频或图像表中.
当我从'pages'中删除一行时,如何确保删除另一个表中的行?我对CASCADE了解一点,但我没有使用外键.至少没有明确说明.
我的表看起来类似于下面(我删除了与问题无关的字段)
页数:id,标题,内容
视频:pid(网页ID),youtube_url
任何帮助将非常感激.
如果你的表是innodb引擎,你可以在删除级联上声明外键 + ,
例如:
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;
Run Code Online (Sandbox Code Playgroud)
更多信息:http: //dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
另一种方式是声明触发 - 在删除之前.
手册:
http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
你可以找到一个小例子:
| 归档时间: |
|
| 查看次数: |
1986 次 |
| 最近记录: |