1樓:晗_寒
這肯定是錯的了...
對於實現你的問題我想到了幾個
1.可以利用表中的約束,也就是外來鍵。在建立外來鍵時建立一個資料操作同步。
例子:constraint fk_tbl1_tbl2 table1(列名) references table2(列名) on update cascade on delete cascade
其中on update cascade是在你對伊個表的相關列進行更新時,2個表同時都會更新。
而delete,則是刪除,和更新同理。
2.可以利用觸發器
用delete觸發器
具體的寫法希望white_win大哥能說說,呵呵,我還沒學到3.也就是你寫2條語句吧...呵呵
2樓:來自匡山膚如凝脂的墨蘭
delete from table1,table2 where 1=1
3樓:
樓主為什麼要用一條啊?是為了實現要麼同時刪除,要麼都不刪除麼?如果是的話,可以這樣寫
if exists (select * from table1 where a='1') and exists (select * from table2 where a='1')
begin
begin transaction
delete from table1
if @@error<>0
begin
rollback transaction
enddelete from table2if @@error<>0
begin
rollback transaction
endcommit transactionend
4樓:
delete from table1;delete from table2 ;
5樓:靈貓的羽毛
delete from table1 where a=1
delete from table2 where a=1
只能分開寫,想偷下懶是不行的哦
6樓:從瓃
要想用 一條語句學 就用觸發器 做
7樓:
不清楚..幹嘛不用兩條語句..
delete一條語句可以同時刪除2個表裡的資料嗎
8樓:熱情的寶寶哭
1、delete from t1 where 條件2、delete t1 from t1 where 條件3、delete t1 from t1,t2 where 條件4、delete t1,t2 from t1,t2 where 條件前3者是可行的,第4者不可行。
也就是簡單用delete語句無法進行多表刪除資料操作,不過可以建立級聯刪除,在兩個表之間建立級聯刪除關係,則可以實現刪除一個表的資料時,同時刪除另一個表中相關的資料。
高手!如何一條sql語句刪除多張表中記錄
9樓:匿名使用者
最好不要使用這種方式,包括級聯刪除,觸發器但不限於資料庫的自動處理功能,這樣的後果就是資料在後臺自動被改動,在我看來,資料的不可控情況是極度糟糕的問題,而且這樣的情況是程式**編寫混亂造成的嚴重後果,我認為,資料庫就只是拿來存放資料的,所有的邏輯都應該跟資料庫無關,資料庫的理想狀態應該是所有資料都是獨立的,所有的邏輯都應該是外部情況。
10樓:匿名使用者
思路錯了吧!明明是兩句sql執行的語句!
如果你想在第二句出錯的情況下,第一句也不執行的話可以設定autocommit 設定為false
然後用rollback.
11樓:郭某人來此
建議你寫個儲存過程,我寫的一個,讓你參考一下!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表中刪除相應的記錄。
12樓:第8感超人
不用觸發器也可以 在關係圖裡面設定聯級刪除
13樓:朱星的布拉格
delete t3 where t3.b列 in(select b列
from t2
inner join t1 on t2.a列=t1.a列);delete t2
where t2.a列 in
(select a列
from t1
)說明兩個sql語句中間加個分號,可一次執行。你可點選sql server 選單下方的「新建查詢」,在彈出的新視窗中執行上述語句。一個普通的sql語句刪除兩個表做不到。
這與sql server 的內在機制有關。
14樓:匿名使用者
一條語句是不可能刪除多張表中記錄的
15樓:
可以使用觸發器trigger
mysql delete問題,我建了三張關聯的表,如何通過delete語句同時刪除三張表的同一id內容? 5
16樓:匿名使用者
例如三個表a,b,c的關聯:
如果b的二級資料
或c的二級資料不一定存在,用以下語句專:
delete a,b,c from a left join b on b.id_b=a.id left join c on c.
id_c=a.id where (b.id_b=a.
id) or (c.id_c=a.id);
刪除3個表都存在的關聯資料:屬
delete a,b,c from a,b,c where a.id=b.id_b and a.id=c.id_c。
17樓:東風冷雪
這不可能吧,
sql語句
delete table_name 欄位限定了,一個一個散除很好啊。
18樓:匿名使用者
delete a,b,c from a,b,c where a.id=b.id and b.id=c.id
【oracle】delete語句同時刪除多張表(**等)
19樓:
如果你是要刪除2長表裡的資料,可以分步做啊:
delete from a where a.ida=1;
delete from b where b.idb=1;
commit;
像你那種做法,是不可行的,不符合oracle的語法。oracle只允許從一張表中刪除資料。你是不是想刪除a表中的資料(b表不變),但要這些資料存在於b表中,可以使用:
delete from a where (a.ida, a.name) in (select a.
ida, a.name from a ,b where a.ida=b.
idb);
commit;
這些語句我都在oracle92中測試過,不知道你究竟需要做什麼?
20樓:
delete from a where a.ida=1delete from b where b.idb=1這樣要寫兩句
請描述你的具體要求
如果你的表的id欄位都是有規律的ida,idb,...即id+表名則可以這樣刪除所有表的id表名=1的資料
declare @sqlstr varchar(8000)select @sqlstr=''
select @sqlstr=@sqlstr+'delete from ['+[name]+']'+' where id['+[name]+']=1'+char(10)
from sysobjects where xtype=n'u'
exec(@sqlstr)
21樓:匿名使用者
delete (select a.ida as ida from a inner join b on a.ida = b.idb ) where ida = 1
這樣試試看
22樓:匿名使用者
你那樣寫的是不成立的啊.
這樣不就可以了嗎?
str=" delete from a where a.ida=1 "
str+="delete from b where b.idb=1 "
兄弟快快吧!
如何用一條繩子打死結,如何用一條繩子打死結?
1 兩手握住繩子兩端,繩子兩頭成交叉狀,左手繩子放在右手下面,具體如下圖所示。2 將左手繩頭回繞壓住右手的繩子,具體如下圖所示。3 右手繩頭下穿左邊的兩股繩子,具體如下圖所示。4 右手繩頭從下方從右手繩空上穿,具體如下圖所示。5 將繩子拉緊,具體如下圖所示。6 具體完成圖如下所示。死結,是指一條繩子...
請教一條SQL語句
update menber.birth set birth year birth 前提是birth是字元型資料 如果如樓上的說法是datetime資料,又需要頻繁訪問,只能增加一個yearofbirth列了。然後如法update 我把語句給你 update menber set birth sele...
Java編寫一條for語句,計算122232n
import java.util.scanner 匯入scanner類 public class a system.out.println sum 輸出結果 public int cal um int n return total 計算1 2 2 2 3 2 n 2 public int cal i...