사용자의 변경 기록을 추적하여 프로파일을 변경할 때마다 이전 데이터를 가져 와서 기록에 저장하고 새 데이터로 업데이트해야합니다.
나는 a select를 사용 하여 오래된 데이터, insertto history 및 마지막으로 update데이터를 변경할 수 있습니다.
잠금 등을 사용하는 것과 같은 저장 프로 시저, 트리거 등을 사용하지 않고 mysql의 단일 쿼리 에서이 모든 것을 가질 수 있습니까? 그렇다면 작은 샘플을 제공하십시오.
1
@savaranan :이 질문은 DBA와 개발자에게 트랜잭션을 사용하고 데이터베이스의 ACID 속성을 최대한 활용하도록 강력하게 상기시켜주기 때문에 +1에 해당합니다.
—
RolandoMySQLDBA 2016 년
@savaranan : 모든 의도와 목적을 위해 Jack은 그에 대한 유일한 해답을 제공했습니다. 실제로 Jack Douglas는 추가 단계를 수행하고 SELECT ... FOR UPDATE를 수행하여 MVCC 보호를 추가하기 위해 id = 10으로 모든 행에서 간헐적 잠금을 강제했습니다. 그의 대답은 Jack과 요점을 강조합니다. 업데이트와 INSERT는 단일 쿼리 일 수 없으며 쿼리가 제안하는 SQL 동작에 대한 단일 트랜잭션 일 수 없습니다.
—
RolandoMySQLDBA 1