나는 데이터 테이블과 아카이브 테이블을 가지고 있습니다.원자 [다른 테이블로 이동 한 다음 원래 데이터 삭제]
웹 애플리케이션은 데이터 테이블에 데이터를 쏟아 및 cron 작업은 아카이브 테이블의 모든 시간과 아카이브를 (이 작은 작업하기 재빨리 데이터 테이블을 유지) 데이터를 가져옵니다. 그러나
INSERT Archive SELECT * FROM Data;
&
DELETE FROM Data;
난 단지 복사가있는 경우, 성공적으로 복사 된 데이터를 삭제하려면, : 제가보기에는
실행이 psudo-SQL 쿼리가 있습니다 실패 나는 데이터가 반 이동도 삭제되지 않고 일관된 상태로 유지되기를 원한다.
어떻게해야할까요?
일부 데이터베이스 시스템 은 업데이트에 거래 중 쿼리에없는 일관성있는, 그래서 "데이터에서 삭제"또는이었다 물건을 삭제하지 않을 수있다 삽입 후에 추가 된 것이므로 삭제시 쿼리를 사용하는 것이 좋습니다. –
하위 쿼리의 아카이브 테이블에서 선택하려고 생각합니다.'primary_key in (select primary_key from archive); –
또한 begin transaction은 유효한 MySQL 명령이 아닙니다. 적절한 명령은'start transaction'입니다. –