고유한 구속조건이 존재하는지 확인하고 액상을 사용하여 떨어트립니다.
처음에 고유한 제약 조건이 존재하는지 확인한 후 존재한다면 제약 조건을 삭제하는 변경 세트가 있습니다.
<changeSet author="loren"
id="DROP_UNIQUE_CONSTRAINT_RULEPRIORITY_ORACLE_v1" dbms="oracle">
<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="1">
SELECT COUNT(*)
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_NAME='UC_RULES_PRIORITY'
</sqlCheck>
</preConditions>
<dropUniqueConstraint constraintName="UC_RULES_PRIORITY"
schemaName="${main.schema}"
tableName="RULES"/>
</changeSet>
이것의 문제는 그것이 전제조건을 통과하지 못하는 것 같습니다.제약 조건이 없다는 의미로 항상 MARK_RAN이라고 표시됩니다.그러면 제약 조건이 절대로 떨어지지 않습니다.
제 db에서 SELECT 문 실행을 시도했는데 1을 반환합니다.
이것이 올바른 방법입니까 아니면 이에 대한 대체 해결책이 있습니까?
코멘트를 요약하자면:
<changeSet author="loren"
id="DROP_UNIQUE_CONSTRAINT_RULEPRIORITY_ORACLE_v1" dbms="oracle">
<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="1">
SELECT COUNT(*)
FROM all_constraints
WHERE CONSTRAINT_NAME='UC_RULES_PRIORITY'
AND OWNER='${main.schema}'
</sqlCheck>
</preConditions>
<dropUniqueConstraint constraintName="UC_RULES_PRIORITY"
schemaName="${main.schema}"
tableName="RULES"/>
</changeSet>
@Loren: 조정하거나 자신의 답변을 올려주세요.
언급URL : https://stackoverflow.com/questions/40256416/check-if-the-unique-constraint-exists-and-drop-it-using-liquibase
'programing' 카테고리의 다른 글
파워셸을 최신 개정판으로 업데이트 (0) | 2023.09.19 |
---|---|
wordpress visual composer 속성 확인란을 처음 선택하는 방법 (0) | 2023.09.19 |
S3에서 파일을 다운로드할 때 AWS Lambda에서 "읽기 전용 파일 시스템" 오류가 발생했습니다. (0) | 2023.09.19 |
마지막 자식을 제외한 요소의 모든 자식을 선택하려면 어떻게 해야 합니까? (0) | 2023.09.19 |
oracle sql 쿼리 질문(2열로 grouping) (0) | 2023.09.19 |