資料庫中兩表為一對多關係要刪除主鍵表中的資訊怎麼刪除

2021-04-26 06:13:55 字數 2553 閱讀 3359

1樓:匿名使用者

1對多來看的話,看成樹狀結構。真要刪除的話,從下往上刪除。刪除到最上面為止。

整個刪除過程作為一個事物來寫。

2樓:

先刪外來鍵所關聯的那個表中的資料,再刪主表的資料

3樓:匿名使用者

先刪除外來鍵表,再刪除主鍵表。

資料庫表的多對多關係 怎麼消除?

4樓:匿名使用者

糾正一抄下,多對多本身就是一種資料庫類

bai型,談不du上消除的。

如:一個老師可以有zhi多個學生,一個學生可dao以有多個老師,這是沒法消除的;

如果想消除不比要多對多關係,如一個學生只能有一個學號,而一個學號只能屬於一個學生,那麼可以確定唯一性,就可以把學號作為此資料庫表的主鍵來進行維護,此情況下就能確保唯一性。

備註:只要資料庫設計合理,出現多對多也不是什麼奇怪的事,所以不用太糾結。

5樓:匿名使用者

直接刪除之間的關聯約束不就好了嗎??

6樓:滿天海晨星

多對bai多關係一般是轉化為一對多關係來du實現,也zhi就是在設計資料庫的dao時候將多對多關係的兩內個表中容間再引入一個關係表,有時候稱之為聯絡實體。然後將參照完整性分別是實在多對多關係的兩個表與聯絡實體表上,查詢的時候進行條件連線即可,這是化解多對多關係正規方法。還有一種就是

實際應用過程中不去引用參照完整性原則,因為參照完整性原則會在一定程度上給開發照成難度,估計這也是xiaozhuimeng這個網友建議的初衷所在。總的來說還是看開發者的使用習慣或者是開發團隊的應用習慣。

7樓:隨o天

那要看錶的具體結構。一般採用拆表,但有些表必須是多對多的關係。

sql語句從主表刪除一條資料,並且把先關聯的多個子表資料也刪除

8樓:匿名使用者

如果建立了主外來鍵約束,那麼這個約束是可以關聯刪除的(建立的時候要加一個引數,這是oracle的寫法,如果你不是oracle我不清楚其他資料庫能不能這樣做)。

建立觸發器,這個所有資料庫都可以。你這裡就是after delete觸發,也是刪除語句,這個是可以的。

9樓:m我們的人的人

delete from table where date in('c','e','f')

結構化查詢語言(structured query language)簡稱sql,結構化查詢語言是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統;

用外來鍵關聯刪除,把b表的uid設成外來鍵關聯a表的id,並關聯刪除操作。

用儲存過程,用事務來處理實現。

建立資料庫:create database database-name刪除資料庫

drop database dbname

建立新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

刪除新表:drop table tabname

增加一個列:alter table tabname add column col type

新增主鍵:alter table tabname add primary key(col)

刪除主鍵:alter table tabname drop primary key(col)

建立索引:create [unique] index idxname on tabname(col….)

刪除索引:drop index idxname

建立檢視:create view viewname as select statement

刪除檢視:drop view viewname

10樓:你猜我猜哇擦猜

建議你寫個儲存過程,我寫的一個,讓你參考一下!cardno是自定義的資料型別!用觸發器容易出錯

create procedure delfixuser@cardno cardno

asdeclare @carno carnoselect @carno=車輛號碼 from fixcardindextable

where 卡號=@cardno

delete from allcardindextablewhere 卡號=@cardno

delete from fixcardindextablewhere 卡號=@cardno

delete from fixcardenddatetablewhere 卡號=@cardno

delete from cardpasswordtablewhere 卡號=@cardno

delete from usercarinfotablewhere 車輛牌號=@carno

說明:刪除一個固定使用者記錄,同時從allcardindextable、fixcardindextable、fixcardenddatetable、cardpasswordtable和usercarinfotable表中刪除相應的記錄。

資料庫查詢一對多關係,只列出一條資料

select aaa.bbb.name as bbb name from table3 ccc left join table1 aaa on aaa.id ccc.table1 id left join table2 bbb on bbb.id ccc.table2 id where 1 1 應該...

資料庫中一對一一對多多對多關係是什麼意思

舉個例子 你有3個表 學生表 學生id 學生姓名 課程表 課程id 課程名 成績表 學生id 課程id 分數 班級表 班級id 學生id sql的一對多,多對一,一對一,多對多什麼意思?1 一對多 比如說一個班級有很多學生,可是這個班級只有一個班主任。在這個班級中隨便找一個人,就會知道他們的班主任是...

多對多關聯式資料庫必須有三張表嗎,多對多關聯式資料庫必須有三張表嗎

不是的。比如學生表和選課表 就是多對多的關係 一個學生可以選3門課,一門課程可以被多個學生選。但是 只要在學生表裡有選課欄位就可以了 或者在選課表裡有 選擇它的學生欄位就可以了 在關聯式資料庫中,除了一對一,一對多外,還有一個多對多關係.前兩個關係都只需要內兩個表本容身就能表達清楚他們之間的關係,而...