sql中如何通过主表删除关联子表数据(带外键)

先创建两个表tb1,tb2。其中,tb1为主表,tb2为子表。


create table tb1

(

   weeklyNo      varchar(17) primary key,

   remark     varchar(200)

);


create table tb2

(

   timeId      varchar(17) primary key,

   weeklyNo      varchar(17),

   foreign key(weeklyNo) references tb1(weeklyNo)

);


下面语句通过主表ID删除,在删除主表数据的时候,跟主表外键关联的子表数据也会相应的删除。

delete t1,t2 from tb2 t2,tb1 t1 where t1.weeklyNo=t2.weeklyNo and t1.weeklyNo='1';



附上周报数据库设计表

weekly为主表,weeklyContent为附属子表


create table weekly

(

weeklyNo             varchar(17) primary key,

extraWorkExplain     varchar(200),

remark               varchar(200),

existQuestion        varchar(200),

solveWay             varchar(200),

copiedPeople         varchar(100),

resportPeople        varchar(100),

whichWeek            varchar(10),

year                 varchar(4),

month                varchar(2),

day                  varchar(2),

state                bool,

createTime           datetime,

adminNo              varchar(17),

companyNo            varchar(17)

);


create table weeklyContent

(

timeId               bigint primary key,

weeklyNo             varchar(17),

week                 varchar(10),

workContentRecord    varchar(200),

coopertePeople       varchar(100),

ifComplete           bool,

unCompleteReason     varchar(200),

leaderAdvice         varchar(200),

isNextWeekPlan       bool,

whichWeek            varchar(10),

year                 varchar(4),

month                varchar(2),

day                  varchar(2),

createTime           datetime,

foreign key(weeklyNo) references weekly(weeklyNo)

);


delete t2,t1 from weekly t1, weeklyContent t2 where t1.weeklyNo=t2.weeklyNo and

t1.weeklyNo='1';


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章