Chinaunix
标题:
完整性约束问题!
[打印本页]
作者:
Boyce
时间:
2003-04-07 15:30
标题:
完整性约束问题!
MYsql数据库:
我有下面几个个表:
CREATE TABLE board (
boardid int(10) unsigned NOT NULL auto_increment,
boardname varchar(100) NOT NULL,
boardnum int(10) unsigned NOT NULL,
PRIMARY KEY (boardid),
KEY boardnum(boardnum)
);
CREATE TABLE forum (
forumid smallint(5) unsigned NOT NULL auto_increment,
boardid smallint(5) unsigned DEFAULT '0' NOT NULL ,
styleid smallint(5) unsigned DEFAULT '0' NOT NULL,
title char(100) NOT NULL,
description char(250) NOT NULL,
forumkind smallint(6) DEFAULT '0' NOT NULL,
forumlogo char(50) NOT NULL,
forumimage char(50) NOT NULL DEFAULT '0' NOT NULL,
islocked smallint(5) unsigned DEFAULT '0' NOT NULL,
canxbbcode smallint(6) DEFAULT '1' NOT NULL,
cancode smallint(6) DEFAULT '1' NOT NULL,
cancolor smallint(6) DEFAULT '1' NOT NULL,
canemail smallint(6) DEFAULT '1' NOT NULL,
canflash smallint(6) DEFAULT '0' NOT NULL,
canfont smallint(6) DEFAULT '1' NOT NULL,
canimage smallint(6) DEFAULT '1' NOT NULL,
canmedia smallint(6) DEFAULT '0' NOT NULL,
cantext smallint(6) DEFAULT '1' NOT NULL,
canurl smallint(6) DEFAULT '1' NOT NULL,
cancss smallint(6) DEFAULT '1' NOT NULL,
canupload smallint(6) DEFAULT '0' NOT NULL,
uploadsize smallint(6) NOT NULL,
PRIMARY KEY (forumid),
key boardid(boardid)//这里
);
CREATE TABLE topic (
topicid int(10) unsigned NOT NULL auto_increment,
forumid smallint(5) unsigned DEFAULT '0' NOT NULL,
title varchar(100) NOT NULL,
lastpost char(20) DEFAULT '0000-00-00 00:00:00' NOT NULL,
pollid int(10) unsigned DEFAULT '0' NOT NULL,
username varchar(50) NOT NULL,
userid int(10) unsigned DEFAULT '0' NOT NULL,
dateline char(20) DEFAULT '0000-00-00 00:00:00' NOT NULL,
hits int(10) unsigned DEFAULT '0' NOT NULL,
iconname varchar(50) NOT NULL,
notes varchar(250) NOT NULL,
islocked smallint(5) unsigned DEFAULT '0' NOT NULL,
istop smallint(5) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (topicid),
KEY forumid (forumid),//这里
key lastpost(lastpost)
);
CREATE TABLE post (
postid int(10) unsigned NOT NULL auto_increment,
topicid int(10) unsigned DEFAULT '0' NOT NULL,
userid int(10) unsigned DEFAULT '0' NOT NULL,
dateline char(20) DEFAULT '0000-00-00 00:00:00' NOT NULL,
pagetext mediumtext NOT NULL,
isedit smallint(5) DEFAULT '0' NOT NULL,
edituserid int(10) unsigned DEFAULT '0' NOT NULL,
editdate char(20) DEFAULT '0000-00-00 00:00:00' NOT NULL,
ipaddress varchar(16) NOT NULL,
PRIMARY KEY (postid),
key userid(userid),
KEY topicid (topicid) //这里
);
复制代码
可以看出他们之间的外键约束关系.
问题:每当删除一个board时候,下面的各个表中有外键约束的全部删除,怎么实现?(例如删除一个boardid=3的board,要求以board=3作为外键的的forum全部也删除,依此类推..)请写出具体语句
作者:
wolfop
时间:
2003-04-07 21:14
标题:
完整性约束问题!
新的mysql支持级联删除,用
ON DELETE CASCADE
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2