Re: check the duplicate code

"Loh Wai Chin" <[email protected]>
Newsgroups gmane.comp.db.oracle.devel
Message-ID <LYRIS-1796914-787022-2002.12.02-11.03.10--gcdod-oracle#[email protected]>
hi,
 
thanks for ur reply.
 
i have tried the trigger, but, if i try to submit 2 record with the same code concurrently, there is still some chance that the database will accept the both record. 2 out of 5 trials will fail. :(
 
why this happened??
 
best regards,
ychin

	-----Original Message----- 
	From: [email protected] [mailto:[email protected]] 
	Sent: Mon Dec/02/2002 6:41 PM 
	To: Oracle 
	Cc: 
	Subject: [oracle] Re: check the duplicate code
	
	


	something like this may work
	i'm not sure if the syntax is correct because i havent tested it
	but hopefully you'll get the idea.
	
	
	create or replace trigger b4_ins_dept  before insert on tbl_department as
	      x number;
	begin
	      select count(1)
	      into x
	      from tbl_department
	      where code = :new.code
	      and del = 0;
	
	      if x != 0   then
	            raise_application_error(-20000, 'Cant insert record Duplicates
	exist');
	      end if;
	end;
	
	
	
	
	
	
	
	                                                                                                
	                      "loh wai chin"                                                            
	                      <[email protected]        To:       "Oracle" <[email protected]>         
	                      >                        cc:                                              
	                                               Subject:  [oracle] check the duplicate code      
	                      02/12/2002 10:34                                                          
	                      Please respond to                                                         
	                      "Oracle"                                                                  
	                                                                                                
	                                                                                                
	
	
	
	
	is there a way to prevent inserting a record that with 1 of the fields is
	dusplicate with the exsiting record.
	
	i mean lets consider the following situation:
	
	i have 1 table tbl_department
	
	description
	
	id    sys_guid()         (primary key)
	code  nvarchar2(10)
	del   number(1)
	
	* the field tbl_department.del is to indicate whether the record is
	already deleted or not. (1 = deleted, 0 = not deleted)
	* tbl_department.code is not a unique key
	
	
	let's said there is already a department record exist:
	id                       code        del
	==                       ====        ===
	999....                        abc         0
	
	
	im facing a problem that the system is able to accept another record with
	the same tbl_department.code = abc which i try to prevent it.
	
	
	is there a way (for example, create a trigger) that i can check the
	duplicate code before inserting into the table?
	
	
	Thanks a lot and regards,
	ychin
	---
	Change your mail options at http://p2p.wrox.com/manager.asp or
	to unsubscribe send a blank email to %%email.unsub%%.
	
	
	
	
	
	
	---
	Change your mail options at http://p2p.wrox.com/manager.asp or
	to unsubscribe send a blank email to %%email.unsub%%.
	



---
Change your mail options at http://p2p.wrox.com/manager.asp or 
to unsubscribe send a blank email to [email protected].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.