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';


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