고유 제약 조건을 유지하면서 MySQL에서 행 값 교환
MySQL에서 테이블의 두 행 사이의 우선순위 값을 교환하는 작업은 고유 제약조건은 제약조건 위반으로 인해 오류가 발생할 수 있습니다. 문제를 이해하기 위해 일반적인 UPDATE 문을 살펴보겠습니다.
UPDATE tasks SET priority = CASE WHEN priority=2 THEN 3 WHEN priority=3 THEN 2 END WHERE priority IN (2,3);
그러나 이 문은 오류를 발생시킵니다.
Error Code: 1062. Duplicate entry '3' for key 'priority_UNIQUE'
문제의 성격
MySQL은 다른 DBMS와 다르게 업데이트를 처리합니다. 전체 문이 완료된 후가 아니라 각 행 업데이트 후에 제약 조건 위반을 확인합니다. 결과적으로 값 교환은 고유 제약 조건을 직접적으로 위반합니다.
가짜 값이나 다중 쿼리가 없는 대안
안타깝게도 MySQL의 중간 값(가짜 또는 null) 또는 다중 쿼리. 고유 제약 조건은 각 행 업데이트 후에 고유성을 적용하므로 직접 교체가 불가능합니다.
임시 제약 조건 제거
한 가지 옵션은 고유 제약 조건을 일시적으로 제거하고 스왑 작업을 실행하는 것입니다. 를 누른 다음 제약 조건을 다시 추가하세요. 그러나 이 접근 방식은 데이터 무결성을 손상시키므로 권장되지 않습니다.
가짜 값 및 다중 쿼리
권장되는 접근 방식은 일시적으로 가짜 값(-3)을 사용하는 것입니다. 첫 번째 행의 우선순위 값을 유지하고 이를 두 번째 행의 값으로 바꿉니다. 트랜잭션 내에는 두 가지 쿼리가 필요합니다.
START TRANSACTION ; UPDATE tasks SET priority = CASE WHEN priority = 2 THEN -3 WHEN priority = 3 THEN -2 END WHERE priority IN (2,3) ; UPDATE tasks SET priority = - priority WHERE priority IN (-2,-3) ; COMMIT ;
이 프로세스는 스왑 작업 중에 제약 조건이 위반되지 않도록 합니다.
위 내용은 무결성을 위반하지 않고 고유 제약 조건을 사용하여 MySQL의 행 값을 교환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

기사는 MySQL에서 파티셔닝, 샤딩, 인덱싱 및 쿼리 최적화를 포함하여 대규모 데이터 세트를 처리하기위한 전략에 대해 설명합니다.

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

이 기사에서는 Drop Table 문을 사용하여 MySQL에서 테이블을 떨어 뜨리는 것에 대해 설명하여 예방 조치와 위험을 강조합니다. 백업 없이는 행동이 돌이킬 수 없으며 복구 방법 및 잠재적 생산 환경 위험을 상세하게합니다.

기사는 외국 열쇠를 사용하여 데이터베이스의 관계를 나타내고 모범 사례, 데이터 무결성 및 피할 수있는 일반적인 함정에 중점을 둡니다.

기사는 준비된 명령문, 입력 검증 및 강력한 암호 정책을 사용하여 SQL 주입 및 무차별 적 공격에 대한 MySQL 보안에 대해 논의합니다 (159 자)

이 기사에서는 PostgreSQL, MySQL 및 MongoDB와 같은 다양한 데이터베이스에서 JSON 열에서 인덱스를 작성하여 쿼리 성능을 향상시킵니다. 특정 JSON 경로를 인덱싱하는 구문 및 이점을 설명하고 지원되는 데이터베이스 시스템을 나열합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
