Ⅰ 請問在DB2嵌入式清表語句出錯怎麼改
import load 不是在哪兒都能用的
1、我建議不要用ALTER TABLE daily_txlog2 ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE語句來清空表,當出現異常時會導致表不可用,而且不能修復,只能刪除後重建。
2、import和load語句得調用系統函數來執行:CALL SYSPROC.ADMIN_CMD('import from /dev/null of del replace into daily_txlog1');
Ⅱ 想要用linux 腳本實現postgres的清表,查詢等工作
psql -h ip << !
\c dbname
delete from xxxx
....
\o file
select *from table………… where …………
\q
!
或者將中間語句寫成文件input.sql
psql -h ip -f input.sql
Ⅲ SQL中觸發器、存儲過程
1、觸發器:當向表unit插入的數據後,且objectid>10000時,向表test_tab插入數據 create trigger trig1
after insert
on unit
for each row
when (objectid>10000)
begin
insert into test_tab values(new.objectid,new.name);
end;存儲過程:向表test插入調用存儲時的參數@id,@namecreate procere pro_name @id,@nameasbegininsert into test values(@id,@name);end;2、兩個區別,通過語法可以看出來,觸發器是在執行了一定的操作後,根據觸發條件,系統自動執行某一操作;而存儲過程則是根據你設定的特定操作,來進行相應的操作而已。3、至於什麼時候用觸發器,什麼時候用存儲過程,這個就要根據你的使用情況了。比如說,在對某張表進行了特定操作後,我們讓系統自動去執行一些操作,這個時候就可以使用觸發器。而存儲過程呢,如果我們在某一個事務中要進行的sql操作特別多,那麼我們就可以把這些sql語句用存儲過程來匯總,達到執行一遍存儲過程就可以執行多條sql命令的目的。另外,你聽說的現在不用觸發器,這點明顯是被誤導了,觸發器和存儲過程是各有優點的。舉個例子,比如說電信的通話記錄,你可以想像每天的數據量有多大,那麼為了保證系統的性能,我們就可以設定觸發器來對表的容量進行限定,比如達到了1000萬條數據,我們可以觸發一個清表的操作,那麼這張表就可以保證數據量始終在1000W以下(這個例子不是很合適,但是可以說明點問題)。之所以有人說不用觸發器,這點也是從資料庫性能來說的,說實話,使用觸發器時,如果設計得不合適,那麼對整個系統的性能會造成很大的影響的,所以在設計資料庫時,一定要慎重。整個產品的性能並不是說代碼優化就行了,資料庫的架構設計也應該考慮在其中。
Ⅳ SQL里如何設置兩張主表,或者說設置關聯時能不能把一個已經跟主表關聯過的從表跟其它從表關聯
關聯表太多就不要join了,用in嵌套,更容易分清表的主次,
select a.c1,a.c2,b.c1,b.c2,c.c1,c.c2..... from table1 a,table2 b,table3 c where a.c1=b.c1 and c.c1=a.c1........
或者
select a.c1,a.c2,b.c1,b.c2,c.c1,c.c2... from table1 a,table2 b where a.a1 in(select c1 from table3 c where c.c1=b.c1) and c.c1=a.c1
或者直接做成表視圖