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
운영게시판
최근게시물
Sybase Q&A 2279 게시물 읽기
No. 2279
insert하려고 하는데 계속 Lock이..., IQ12.7 왕초보문의
작성자
장광일(dolbom)
작성일
2008-08-27 17:51
조회수
9,435

 Sybase 완전초보 입니다.

현재 IQ 12.7 공부중 입니다. 
테이블 하나 만들고 insert하려고 하는데 계속 Lock이 걸리고 죽지를 않네요!

테이블 description-------------------------

CREATE TABLE 등급
 (
   code CHAR(4) CONSTRAINT PK_등급_code PRIMARY KEY,
   grade CHAR(20) CONSTRAINT NN_등급_grade NOT NULL
 );


CREATE TABLE  학생2
 (
   번호 CHAR(5) CONSTRAINT PK_학생_번호 PRIMARY KEY,
   성명 CHAR(20) CONSTRAINT NN_학생_성명 NOT NULL,
   나이 INT CONSTRAINT CK_학생_나이 CHECK (나이>18),
   사물함 CHAR(3) CONSTRAINT UQ_학생_사물함 UNIQUE,
   등급 CHAR(4) CONSTRAINT FK_등급_code REFERENCES 등급 (code),
          입숙일 DATE NULL  
 );
---------------------------------------------------------------
 위와 같이 테이블 생성하고 아래와 같이 insert하려고 하는데
 LOCK이 걸리네요!


 insert into 학생2
 values
 ('0001','홍길동',20,'007','007','20080820') ;

 그래서 sp_iqwho에서 connhandle번호(1)를 찾아서
아래와 같이 강제로 disconnection 시키려 하는데

  drop connection 1;

그것도 마찬가지로 먹지를 않네요!

 결국에는 엔진(학사모)아이콘을 활성화시켜 종료시켰네요!
 이런경우 lock을 해제하는 방법이 따로 있나요?
 그리고 왜 insert가 안되는 것인지? 알고 싶습니다.
고수님들의 조언 부탁드립니다.

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

SYBASE IQ는 테이블 레벨 locking 입니다. 즉 한 세션(혹은 사용자)에서 누군가 특정한 테이블에 write(insert, update, delete) 작업을 하면 다른 세션에서는 write 작업을 할 수 없습니다. (하지만 read 작업은 얼마든지 할 수 있습니다). 그리고 이렇게 lock이 발생하면 나중에 들어간 세션의 명령어는 오류 메시지를 뿌리고 수행을 하지 않습니다. 즉 prompt 상태로 됩니다. 근데 지금 님께서 질문하신 내용으로 봐서는 lock waiting 현상이 발생하는 것 같은데 (설명이 정확하지 않아서 제 나름데로 판단함) 궁급한 것이 있습니다. 왜 lock 이라고 생각하나요? 그리고 create table 한 세션하고 insert 한 세션이 같은 세션인가요 아니면 다른 세션인가요? 같은 세션이라면 절대로 lock 현상이 발생하지 않을 것이며 다른 세션이라도 lock wait 현상이 발생하지 않고 오류 메시지를 출력하고 prompt 상태가 될 것입니다. 좀 더 자세하게 테스트한 상황을 기술해 보세요

세지아빠(sejiappa)님이 2008-08-28 17:15에 작성한 댓글입니다.

세지아빠님 관심 가져 주셔서 대단히 감사합니다.
우선 처음에는 같은 세션이 아니었어요,나중에 다시 테이블을 drop시키고 
다시 생성했습니다.(local pc) 그리고 insert하였는데 마찬가지로 플레이버튼(세모)은 죽고 스톱버튼(네모)은 클릭해도 반응이 없습니다. 혹시나 해서 제약조건을 빼고 다시 테이블을 생성하였더니 정상적으로 
insert되었습니다. 제가 혹시 제약조건을 잘 못 준건가요?

장광일(dolbom)님이 2008-08-28 18:02에 작성한 댓글입니다.

아래 SQL은 제가 테스트한 예제입니다. 보시면 아시겠지만 극히 정상적으로 진행되고 있으며 참고로 테스트 한 버전은 Sybase IQ 12.7 (ESD 5) 입니다.


CREATE TABLE 등급
 (
   code CHAR(4) CONSTRAINT PK_등급_code PRIMARY KEY,
   grade CHAR(20) CONSTRAINT NN_등급_grade NOT NULL
 );


CREATE TABLE  학생2
 (
   번호 CHAR(5) CONSTRAINT PK_학생_번호 PRIMARY KEY,
   성명 CHAR(20) CONSTRAINT NN_학생_성명 NOT NULL,
   나이 INT CONSTRAINT CK_학생_나이 CHECK (나이>18),
   사물함 CHAR(3) CONSTRAINT UQ_학생_사물함 UNIQUE,
   등급 CHAR(4) CONSTRAINT FK_등급_code REFERENCES 등급 (code),
          입숙일 DATE NULL  
 );

insert into 등급 values ('1111', 'A+');
insert into 학생2 values ('11111','홍길동', 21, 'aaa', '1111','20080101');


select * from 등급

#          code   grade
---------- ------ ------
1          1111   A+                 

(1 row(s) affected)



select * from 학생2

#          번호   성명   나이   사물함 등급   입숙일
---------- ------ ------ ------ ------ ------ ------
1          11111  홍길동              21     aaa    1111   2008-01-01

(1 row(s) affected)



select @@version

#          @@version
---------- ------
1          Sybase IQ/12.7.0/080707/P/ESD 5/ITANIUM/HP-UXi 11.23/64bit/2008-07-07 14:02:30

(1 row(s) affected)

세지아빠(sejiappa)님이 2008-08-29 10:31에 작성한 댓글입니다.

감사합니다. 세지 아빠님!!^^
확인결과 제 version은
@@version
'Sybase IQ/12.7.0/070906/P/ESD 3/MS/Windows 2000/32bit/2007-09-06 17:42:04'
이렇네요!

혹시 ESD가 3이라 그런가요?
아님 환경설정이 잘못되었을까요?
ESD5는 아직 설치를 못해봤네요!
도움주시느라 감사합니다.

장광일(dolbom)님이 2008-08-29 14:38에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2282서브SP의 결과를 루프중인 메인SP의 임시테이블에 넣고 싶습니다.~ [8]
궁금이
2008-08-29
10304
2281load 하는 것이 바람직 문의.... [2]
배우신
2008-08-28
7600
2280procedure 삭제방법? (도와주세요) [1]
마신자
2008-08-28
6904
2279insert하려고 하는데 계속 Lock이..., IQ12.7 왕초보문의 [4]
장광일
2008-08-27
9435
2277bcp 작업하면서 발생되는 오류입니다. 부탁드립니다 [3]
동글이
2008-08-25
7738
2276rows affected 로그 남기기 [1]
초보
2008-08-25
6949
2275sybase 11.5 가지고 계신분 메일좀..부탁. [3]
김성엽
2008-08-21
7130
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다