2013-11-04 3 views
1

hsqldb이 있는데 SET DATABASE TRANSACTION CONTROL MVLOCKS이 포함되어 있습니다. 나는 열 드롭하는 것을 시도하고있다 :HSQLDB : 열을 삭제할 수 없습니다

ALTER TABLE CSUSER DROP COLUMN PASSWORD 

을하지만 난이 오류가 오전 : 내가 SET DATABASE TRANSACTION CONTROL LOCKS 설정하면, 나는 오류가없는

Error: Error while executing action. Reason: java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: unique constraint or index violation; SYS_PK_10426 table: CSUSER in statement [ALTER TABLE CSUSER DROP COLUMN PASSWORD]

과 열이 삭제됩니다.

문제는 내가 MVLOCKS을 사용해야한다는 것입니다.이 열에 대한 제약 조건을 찾을 수 없습니다.

누구나 아이디어가 있습니까?

답변

0

세트 SET DATABASE TRANSACTION CONTROL LOCKS을 사용하여 열을 떨어 뜨린 다음 SET DATABASE TRANSACTION CONTROL MVLOCKS을 사용하십시오.

오류의 원인은 불완전한 커밋되지 않은 트랜잭션이 있기 때문입니다. 모든 트랜잭션을 커밋해야합니다.

따라서 대규모 데이터 및 스키마 변경 작업을 수행하기 전에 트랜잭션을 커밋하십시오.

+0

감사합니다. fredt하지만이 문은 사용자가 시작한 마이그레이션 중에 실행됩니다. 열을 삭제하기 전에 SET DATABASE TRANSACTION CONTROL LOCKS를 추가하면 사용자가이 오류를 갖습니다. java.sql.SQLException : invalid transaction state : 문에서 활성 SQL- 트랜잭션 [SET DATABASE TRANSACTION CONTROL LOCKS] – user2318955

+0

트랜잭션을 커밋 한 후 모든 마이그레이션을 수행하십시오. – fredt

관련 문제