이것이 선호되는 방법인지 잘 모르겠지만 해결책을 제시하고 심포니 2 위저드가이 문제에 대해 더 많은 설명을하고 있는지 확인하고 싶습니다.symfony2 독트린 테이블 잠금
금융 거래를 테이블에 등록하고 있으며 각 사용자마다 일련의 일련 번호가 있습니다 (즉, 각 사용자의 거래 테이블은 1부터 시작합니다).
나는이 코드에서 처리해야한다는 것을 이해하고 두 사람이 트랜잭션을 등록하는 동일한 사용자 계정에 로그온하거나 사용자가 여러 트랜잭션을 트리거한다고 가정하면 사용자에 대해 중복 항목이 발생할 위험이 있습니다. 동시에 쓰고 교리는 전나무가 불을 쓰기 전에 ... 두 작업에
$em->getConnection()->exec('LOCK TABLES transaction WRITE;'); //lock for write access
$results = $em->createQuery("SELECT MAX(t.serial) FROM ekonomiKassabokBundle:Transaction t WHERE t.user = $userId")->getResult();
$temp = $results[0];
$max_serial = $temp[1];
$new_serial = $max_serial + 1;
$entity->setSerial($new_serial);
$em->persist($entity);
$em->flush();
$em->getConnection()->exec('UNLOCK TABLES;');
위의 코드는 저를 제공합니다 ...
SQLSTATE[HY000]: General error: 1100 Table 't0_' was not locked with LOCK TABLES
을 건의 SELECT 작업을 수행하는 또는이 어쩌면이다 과잉 공격, 난 그냥 테이블 자물쇠를 건너 뛸까요?
정확히 똑같은 문제가 있습니다. 아무 생각없이 ... 해결책을 찾았습니까? – djfm
아니, 아직 해결 방법이 없습니다. –