在資料庫公升級過程中,比如要給某個表新增字段我們都是直接
alter table tablename add colname type
這樣的寫法非常不具有重用性。
為什麼這麼說呢?因為一旦這裡新增的列名存在的條件下,我們執行這條sql肯定會報錯。
今天看見乙個前輩寫的sql指令碼讓我恍然大悟。
他是這麼寫的:
declare
num integer;
begin
select count(*) into num from user_tab_cols where lower(table_name)=lower('tablename') and lower(column_name)=lower('colname');
if num=0 then
execute immediate 'alter table tablename add colname type';
end if;
end;
看到了吧,先到user_tab_cols中去查詢相應的字段,如果沒有再去新增字段,如果有,則什麼都不做而且不會報錯。
開始覺得自己要學得東西還有好多,越來越覺得自己是個小菜鳥,加油吧!!!
SQL指令碼優化
1.建立索引 一.要盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引 1 在經常需要進行檢索的字段上建立索引,比如要按照表字段username進行檢索,那麼就應該在姓名欄位上建立索引,如果經常要按照員工部門和員工崗位級別進行檢索,那麼就應該在員工部門和員工崗位級別...
sysctl優化指令碼
bin sh sysctl w net.ipv4.netfilter.ip conntrack tcp timeout established 600 sysctl w net.ipv4.netfilter.ip conntrack max 1310720 sysctl w net.ipv4.ip ...
jmeter 優化指令碼
可以檢視提取出的資料 1 響應斷言 根據正確的響應資料中的某一固定值,判斷是否有bug 2 json斷言 根據json資料中心的某一常量,判斷是否有bug 1 foreach控制器 輸入變數名稱,引用到http請求中 jdbc輸入處理器儲存的變數名稱 2 事務處理器 3 簡單控制器 相當於建立乙個資...