프로그램/db
-
MY-SQL- merge 사용하기프로그램/db 2013. 7. 21. 14:18
테스트할 테이블의 컬럼 중에 name 이라는 컬럼에 Unique 제약 조건을 추가한다. ALTER TABLE member ADD UNIQUE (NAME); 현재 아무런 값이 없기 때문에 insert를 하면서 saltfactory와 saltfactory@gmail.com을 입력할 것이다. INSERT INTO member (NAME, email) VALUES ('abcd', 'abcd@gmail.com') ON DUPLICATE KEY UPDATE name='abcd', email='abcd@me.com'; 한번더 위 쿼리를 실행하면 abcd라는 이름이 이미 있으니 abcd@gmail.com의 이메일 주소가 abcd@me.com으로 업데이트 될 것이다.
-
MS-SQL- 게시판 페이징 쿼리프로그램/db 2013. 7. 21. 14:10
MSSQL 전용 게시판 페이징 처리 쿼리 1. row_number() (버젼에 따라 함수가 없을수도 있음) 데이터가 많은 경우 유용 select * from( select Row_Number() over(order by sFaq_index desc)as rownum,* from 테이블명 where sFaq_index like '%1%') 테이블명 where rownum BETWEEN [(페이지번호-1)*페이지크기+1] and [페이지번호*페이지크기] 2. not in 절 데이터가 대량으로 갈수록 느려짐 select top 10 * from qas where g_num not in (select ((page-1)*pagesize) g_num from qas where g_num in (select g_nu..
-
MS-SQL- merge와 비슷한 기능사용하기프로그램/db 2013. 7. 21. 14:04
오라클과 같은 기능을 하는 구문이다. begin try begin tran --declare @arg_id int if not exists(select * from examinee where e_idx = 3) begin insert into examinee(p_no,e_regday,e_id,e_category,e_subject,e_exception) values ('1','e','qwe',3,4,'q') end else begin update examinee_20121026 set e_id='qweqweqw' end commit tran; end try begin catch rollback tran end catch; 한줄로 sql = "begin try begin tran if not exists(s..