데이터베이스에 동일한 데이터를 생성하는 스크립트가 있습니다. 모양은 다음과 같습니다.테이블 잠금없이 많은 INSERT와 트랜잭션
START TRANSACTION;
INSERT INTO table (data);
INSERT INTO table (data);
INSERT INTO table (data);
...
COMMIT;
스크립트는 약 30 분 동안 실행됩니다. 그러나 작동 중일 때 테이블은 다른 INSERT에 대해 잠겨 있습니다. 스크립트가 끝날 때까지 다른 프로세스의 행을 INSERT 할 수 없습니다. 그게 필요 할까? 트랜잭션을 사용하고 싶지만 전체 테이블을 잠글 수는 없습니다. 그것을 할 방법이 있습니까?
START TRANSACTION;
INSERT INTO table (data);
COMMIT;
START TRANSACTION;
INSERT INTO table (data);
COMMIT;
...
START TRANSACTION;
INSERT INTO table (data);
COMMIT;
가장 우아하지,하지만 당신이 설명하는 상황에 따라 문제를 해결해야합니다
잘 모르겠어요를 그것이 내가해야 할 것입니다. 전체 스크립트 프로세스에 대한 트랜잭션을 갖고 싶습니다. 스크립트가 모든 행을 삽입했는지 또는 아무것도 삽입하지 않았는지 확인해야합니다. – pronngo
@Adam에 대한 귀하의 의견에 대한 답변이 업데이트되었습니다. –