Sua consulta parece completamente confusa, especialmente em seu
EXISTS
subconsulta. Você está selecionando MyTbl.ColA
de tickets
??? Meu conselho seria simplesmente adicionar uma restrição exclusiva em
MyTbl (ColA, ColB)
. ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);
Em seguida, seu
INSERT
falhará com uma violação de restrição exclusiva que pode ser capturado em uma PDOException
. $stmt = $pdo->prepare('INSERT INTO MyTbl (ColA, ColB) VALUES (?, ?)');
foreach ($loopme as $foo) {
try {
$stmt->execute([$foo->fooA, $foo->fooB]);
} catch (PDOException $e) {
$errorCode = $stmt->errorInfo()[1];
if ($errorCode == 1586) {
// I think 1586 is the unique constraint violation error.
// Trial and error will confirm :)
} else {
throw $e;
}
}
}
Para resolver a mensagem de erro que você está vendo... é porque você não está diferenciando entre o
INSERT
tabela e a tabela de subconsulta.