sqlorin效率
⑴ 怎麼在sql2000查找觸發器
最基本的觸發器是針對表的insert、update、delete這三種操作來的。觸發器可以建立在表上,也可以建立在視圖上。建立在表上的觸發器會在表內容發生改變時觸發。建立在視圖上的觸發器會在視圖內容改變時觸發。注意,視圖觸發器僅會在明確對視圖進行操作的sql語句執行時才會觸發,當基本表的內容發生改變而引起視圖內容變化時,不會觸發視圖觸發器。
下面是建立表觸發器的代碼:
create
or
replace
trigger
tg_e_contact
before
update
or
insert
or
delete
on
e_contact
for
each
row
begin
if
inserting
then
insert
into
[email protected]
values
(:new.telephone,
:new.employeeid,
:new.status);
else
if
updating
then
update
[email protected]
s
set
s.telephone
=
:new.telephone,
s.employeeid
=
:new.employeeid,
s.status
=
:new.status
where
s.employeeid
=
:old.employeeid;
else
if
deleting
then
delete
from
[email protected]
s
where
s.employeeid
=
:old.employeeid;
end
if;
end
if;
end
if;
end;
下面是建立視圖觸發器的代碼:(注意裡面的instead
of)
create
or
replace
trigger
tg_e_contact
before
instead
of
update
or
instead
of
insert
or
instead
of
delete
on
e_contact
for
each
row
begin
if
inserting
then
insert
into
[email protected]
values
(:new.telephone,
:new.employeeid,
:new.status);
else
if
updating
then
update
[email protected]
s
set
s.telephone
=
:new.telephone,
s.employeeid
=
:new.employeeid,
s.status
=
:new.status
where
s.employeeid
=
:old.employeeid;
else
if
deleting
then
delete
from
[email protected]
s
where
s.employeeid
=
:old.employeeid;
end
if;
end
if;
end
if;
end;
⑵ oracle中in不能超過1000怎麼處理
給你
一段:
http://blog.sina.com.cn/s/blog_88af8d170100w91l.html
項目中使用到了oracle中where
語句中的in條件查詢語句。in(,,,,,,),括弧內的數據個數比較多(此處是區域查詢的情況),北京市下屬有7000多個區、街道清迅、社區。解決此問題有幾個途徑
1,編寫一個方法將條件更換成
in(,,,,,,,)
or
in
(,,,,,,,,,)
or
in
(,,,,,,,,,,,,,,).......
保證每個in內部的數據個數不超豎正大過一千,就可以。問題是這么處理的時候執行效率比較低下。首先的查詢出那麼多的條件數值,然後在in
查詢中有了那麼的or
條件。。。
2,建立一個中間的temp表存在查詢條件,在資料庫內部進行直接查詢
select
*
from
table_1
where
column_1
in
(
select
column_2
from
table_2_temp
)
ps:這種方式我沒有使用。。。。。。。。。。
3,摒棄那種先查出查詢條件,然後再把條件放在查詢目標結果集的sql語句中,直接編寫sql語句
select
*
from
table_1
,。。。。
where
column_1
in
(
select
column_2
from
table_2
,。。。。。。。。
)
達到業務效果的同時,提高了執行效率。
想想一個sql語句執行數分鍾的時候是余豎個什麼效果。。。。。。。
⑶ smart攜手NVIDIA展開深度合作 明年起搭載DRIVE Orin晶元
上易車App首頁點擊銷量排行,查看最全面的周銷量數據。