不能增加重複客商的trigger 感謝一路的提醒

2021-09-08 08:49:50 字數 1182 閱讀 1314

create

orreplace

trigger

addcsutsame

before

insert

onbd_cubasdoc

foreach row

declare

--local variables here

pk_bas varchar2(200

);

cursor basjob(id varchar2)is

select custname from

bd_cubasdoc

where custname=

id

and nvl(dr,0)=

0and custname in (select custname from

bd_cubasdoc)

/*and length(custname)>3*/;

begin

open

basjob(:new.custname) ;

loop

fetch

basjob

into

pk_bas;

exit

when basjob%

notfound;

endloop;

close

basjob;

if pk_bas is

notnull

then

begin

-20001,pk_bas||

'客商名稱重複,請直接修改已存在客商增行!');

end;

endif

;end addcsutsame;

一直在用這個觸發器,本來是要讓一路提意見:游標定義中使用了and custname in (select custname from

bd_cubasdoc),以後隨著客商資料的增加,會不會導致軟體端操作低效率,因為單純查詢(select custname from

bd_cubasdoc)就會耗時2.188s(目前有近一萬的客商)

沒有想到一路一看到了我這個游標的問題,and custname in (select custname from

bd_cubasdoc)這句話是可以不要的。因為前面已經有了select custname from

bd_cubasdoc

Dictionary 新增重複的鍵值對

上 region 測試dictionary如何新增鍵重複的內容 public class mydictionarycomparer iequalitycomparer public int gethashcode string obj public static void csdictionary ...

Linux增加 重要的Shell環境配置檔案

使用者登入linux系統後,通常接觸的第乙個軟體環境就是bash命令解釋程式,這是除了系統核心之外最重要的軟體環境。在linux系統中,軟體環境的配置資訊通常都存放在一些配置檔案中。以下是一些較為重要的shell環境配置檔案 etc bashrc 包含系統定義的命令別名和bash的環境變數定義。et...

新增 修改時不可新增重複名稱的重複性校驗解決方案

需求 要求在新增 修改門店名稱時,不可以重複新增名稱的問題 int exist commonservice.getlistfortotal existstorebyid storebean if exist 0 sql 的使用 existstorebyid count resulttype int ...