3 14 2 資料庫更新特定欄位SQL 語句塊

2022-03-07 03:39:54 字數 1831 閱讀 7766

1.1適用於單條或者因為in條件1-1000條資料

下面是更改cms_contract_info 表中合同編號為cmcc987最後更新時間為當前時間,或者注釋裡特定時間。

1

update

cms_contract_info cci

2set cci.last_update_date =

sysdate3/*

to_date('20190516 10:12:50','yyyymmdd hh24:mi:ss')*/4

where cci.contract_no in ('

cmcc987

')

1.2 使用where表條件可更改大批量資料,但改之前一定注意備份。

1.3 有時候需要根據條件往後推時間。我使用語句塊來完成。

以下語句塊是,完成根據條件( 你要更改的資料條件)完成每10分鐘往後更新30條資料,資料的開始時間都由你設定。

1

--儲存過程或語句塊宣告時使用

2declare3--

定義更改時間變數

4v_commit_time date;5--

定義你要打散數量

6 v_count int;7

--你引數的型別和資料庫一致

8 v_contract_no cms.cms_contract_info.contract_no%

type;

9begin

10--

初始化引數

11 v_count :=1;

12 v_commit_time :=

sysdate;

13/*

v_commit_time := to_date('2018-12-10 00:00:01', 'yyyy-mm-dd hh24:mi:ss');

*/14

--把需要改的資料條件標識資料迴圈到contract_cursor中

15for contract_cursor in(select ci.contract_no from

cms_contract_info ci

16where ci.contract_no in()group

byci.contract_no)

1718

loop

19--

根據迴圈的條件更新資料

20update

cms.cms_contract_info ci

21set last_update_date =

v_commit_time

22where ci.contract_no =

contract_cursor.contract_no;

23--

超過30條更新下一次

24if v_count =

30then

25--

列印修改數目

26 dbms_output.put_line('

更新:'

||to_char(v_count));

27 v_count :=0;

28--

當前時間加10分鐘一批

29 v_commit_time := (v_commit_time+10/

1440

);30

commit;31

endif;32

--下一次更新

33 v_count := v_count +1;

34end

loop;

35 dbms_output.put_line('

更新:'

||to_char(v_count));

36end;

資料庫字段

mysql char size 字長字元,0 255位元組 varchar size 變長字元,0 255位元組 date 日期資料,格式為yyyy mm dd hh mm ss datetime 日期資料,比date更確切,包含分秒 int整形資料 double s,p 數字型,可存放實型和整形,...

php之批量更新mysql資料庫字段

為了提高資料庫的響應速度,希望僅通過訪問一次資料庫完成對乙個欄位中多個記錄的更新操作,也就是批量更新,在網上查了許多關於批量更新的例子,一直沒找合適的,不過網上的資料給了我不少啟發,現將這幾天實現的 與大家分享。首先簡述一下我的問題,目的 根據資料庫中的id欄位實現對所有score欄位的更新,假設有...

資料庫更新

region 將資訊存入資料庫store the information to the sql int userid convert.toint32 session userid oledbconnection cn new oledbconnection strcn string sqlcmd u...