programing

MariaDb가 기존 행에 검사 제약 조건을 적용하지 않음

lastmoon 2023. 6. 6. 10:34
반응형

MariaDb가 기존 행에 검사 제약 조건을 적용하지 않음

제약 조건을 위반하는 일부 행이 포함된 테이블에 단순 검사 제약 조건을 추가했습니다. 이전 데이터의 무결성 검사로 인해 엔진에 의해 차단될 것으로 예상했지만 스키마가 경고 없이 저장되었습니다.제약 조건은 새 삽입 또는 업데이트에서 예상대로 작동합니다.예상된 행동입니까?

사용 중: XAMPP 3.3(윈도우즈 10), MariaDB 10.4.21 및 SQLYog 커뮤니티 에디션을 프론트엔드로 사용합니다.

예. CHECK 제약 조건에 따라 예상되는 동작입니다.

행을 삽입하거나 업데이트하기 전에 모든 제약 조건이 정의된 순서대로 평가됩니다.

설명서

이전 데이터가 이미 삽입되었기 때문에 위반에 대한 오류 메시지가 표시되지 않습니다.

실행할 수 있습니다.SELECT모든 위반을 확인하고 계획에 따라 업데이트하거나 이전 테이블의 이름을 변경하거나 이전 이름으로 새 테이블을 만들고 모든 데이터를 삽입할 수 있습니다. 제약 조건에 부딪히면 이것이 중지되지만 첫 번째 방법이 더 안전합니다.

언급URL : https://stackoverflow.com/questions/73928881/mariadb-not-enforcing-check-constraint-on-existing-rows

반응형