同表兩字段值互換 設定列預設值 設定主鍵值

2021-08-02 04:18:45 字數 889 閱讀 1079

t2這張表存在兩個問題:1 id有部分歷史資料是null,現在為了線上線下實現同步,需要設定主鍵值。並且使用sys_guid()函式設定預設值

2 資料資料的name列和name1列值出現錯誤,需要互換

1、①:修改歷史資料

update t2 set id  = sys_guid() where id is null;

commit;

②:設定預設值

alter table  t2  modify id default sys_guid() not null;

③:設定主鍵值

alter table t2 add constraint pk_load_unicode primary key (id);

update t2 a, t2 b set a.id = b.name, a.name = b.id

2、更新前資料

方法1:

update t2 a

set (name, name1) =

(select name1, name from t2 b where a.id = b.id);

commit;

方法2:

merge into t2 a using t2 b

on(a.id = b.id)

when matched then 

update set a.name=b.name1 ,a.name1=b.name;

commit;

更新後資料:

mysql 個別字段設定預設值

專案中經常遇到一些問題 新增到表中資料一般不會出現什麼錯誤,反而讀取資料各種報錯 像我這種,自以為很簡單的讀取,也不debug,直接獲取資料,然後。非常浪費時間,有個別報錯。檢視的時候,原來是某個欄位為空 轉化 資料型別的出現錯誤。解決辦法 那就是 設定預設值 我試過在實體裡新增預設值 沒有效果 資...

修改表增加字段預設值default

對個生產庫的表增加1個字段.欄位型別是int型,表資料有2千萬條,alter table table name add xxoo number 4 default 0 因此 不僅要修改字典,還要重新整理全部資料.1 在alter sql中有帶預設值,oracle會直接重新整理全部的記錄。2 在alt...

access中設定字段預設值相關函式

access中設定字段預設值相關函式 datevalue now datepart q now today date years datepart yyyy today 1981 1 days datepart y today 25 ifdatepart m today 12then ifdatep...