database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 1045 게시물 읽기
No. 1045
기본키값 중복 검사하는 방법으로 어떤 것들이 있나여?
작성자
윤명욱(mwyun)
작성일
2004-11-23 17:26
조회수
10,509

현재 DB는 FIREBIRD를, 개발툴은 델파이를 사용하여 회사 프로젝트를 진행하고 있는데요 ^^;

기본키값은 중복되면 않되므로 이를 검사하는 방법들을 알고 싶습니다.

 

<< 첫번째 방법 >>

값을 입력하면 해당하는 테이블에 쿼리를 날려서 입력한 새로운 값이 있는가 검색한다.

있으면 에러 메시지를 발생하고 다시 입력하게 한다.

없으면 그대로 진행한다.

...

모든 입력을 맞치면 INSERT 쿼리문을 실행한다.

 

<< 두번째 방법 >>

모든 입력을 맞치면 INSERT 쿼리문을 실행한다.

DBMS가 중복된 키값을 체크하여 에러 메시지를 출력한다.

에러가 발생한 값을 리턴받아서 다시 값을 입력받도록 한다.

만약 INSERT 쿼리문 실행시 에러가 없다면 정상적으로 테이블에 레코드가 추가된다.

 

지금은 두번째 방법으로 생각해서 만들려는데요 아직 막막합니다. ㅠ_ㅠ

위의 방법 말고 다른 더 좋은 방법이 있으면 답글 부탁드립니다.

 

이 글에 대한 댓글이 총 2건 있습니다.

기본키의 기본적인 제약조건이 unique와 not null 입니다.

 

그러므로 insert시킬때 특별이 그값이 들어있는지 검사하실 필요는 없구여

 

에러처리를 통한 재입력방법을 사용하시는게 좋을듯 합니다.

 

2번째가 더 좋겠지요...^^

 

첫번째 방법은 insert 하기전에 한번 select 해야되기때문에 성능으로봐선 바람직하지 않습니다.

 

허접한 답변이지만 도움이 되셨길....

최한열(검은호랑이)님이 2004-11-23 17:55에 작성한 댓글입니다.

네! 단변 감사드리구요 ^^; 저도 그 방법이 더 나은거 같아서 지금 작업 중입니다.

 

db 서버가 에러를 리턴하면 예외처리 루틴을 실행하도록 만들고 있습니다.

 

위의 방법이 성공하면 쿼리문 실행시 발생하는 수 많은 에러에 대한 처리를 한 때 모아둘 수 있어서 좋을 듯 합니다.

윤명욱(mwyun)님이 2004-11-24 11:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1050[질문] 데이터베이스의 종류가 뭐가있쬬? [1]
지훈쏭
2004-11-26
12159
1049오라클 mysql mssql....서로의관계 [2]
오희원
2004-11-25
11354
1046오라클7버전의 DB서버과 오라클 9.2 버전의 DB서버의 Db Link 방법문의 [1]
김희정
2004-11-24
11742
1045기본키값 중복 검사하는 방법으로 어떤 것들이 있나여? [2]
윤명욱
2004-11-23
10509
1044C언어로 ms-access연동해서 주소록 만드는 프로그램인데.. [2]
김준성
2004-11-22
12252
1043비베에서 사용 가능한 DB종류. [1]
김진혜
2004-11-22
11340
1038[질문] 특정테이블에 값을 1,2,3,4.... 순으로 넣고 싶습니다. [1]
정연호
2004-11-11
9985
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2021 DSN, All rights reserved.
작업시간: 0.093초, 이곳 서비스는
	PostgreSQL v13.3으로 자료를 관리합니다