如何防止大的DML語句

2021-08-29 12:53:49 字數 837 閱讀 5688

開發人員在開發庫上更新某個表的記錄時總忘了新增限制(where)條件, 而錯誤地更新了資料, 幾個小時或幾天後來求助dba, 給dba製造了不少麻煩, 有沒有辦法限制他們一句話能更新的記錄的條數呢? 下面的方法可以用來限制一條語句能更新的記錄數, 首先來建立乙個包.

create or replace package temppkg as

rowcount number := 0;

end;

/

建立乙個語句級(執行前)的觸發器, 初始化包中的變數.

create or replace trigger trg_before_update_noteinfo

before update on noteinfo

begin

temppkg.rowcount := 0;

end;

/

建立乙個行級的觸發器, 進行計數和檢查, 並丟擲錯誤.

create or replace trigger trg_update_noteinfo_row

before update on noteinfo

for each row

begin

temppkg.rowcount := temppkg.rowcount + 1;

if temppkg.rowcount > 100 then

temppkg.rowcount := 0;

end if;

end;

/

這個辦法是不是太土了? 用這個方法, 有點看不起自已.

如何防止大的DML語句

開發人員在開發庫上更新某個表的記錄時總忘了新增限制 where 條件,而錯誤地更新了資料,幾個小時或幾天後來求助dba,給dba製造了不少麻煩,有沒有辦法限制他們一句話能更新的記錄的條數呢?下面的方法可以用來限制一條語句能更新的記錄數,首先來建立乙個包.create or replace packa...

MySQL的DML刪除語句

mysql列表頁 方式一 delete 語法 1 單錶的刪除 delete from 表名 where 篩選條件 2 多表的刪除 補充 sql92語法 delete 表1的別名,表2的別名 from 表1 別名,表2 別名 where 連線條件 and 篩選條件 sql99語法 delete 表1的...

mysql中的DML語句

dml 資料操作語言,對 中的資料進行操作,insert update delete。insert 插入 insert into 表名 欄位1,欄位2,欄位3,values 值1,值2,值3,語法1 欄位名稱全寫 insert into employee 欄位1,欄位2,values 值1,值2,例...