sql >> データベース >  >> RDS >> Mysql

PDOが存在しない場所にMYSQL挿入

    特にEXISTSでは、クエリが完全に混乱しているように見えます サブクエリ。 MyTbl.ColAを選択しています ticketsから ???

    私のアドバイスは、MyTbl (ColA, ColB)に一意の制約を追加することです。 。

    ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);
    

    次に、INSERT 一意の制約違反で失敗します 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;
            }
        }
    }
    

    表示されているエラーメッセージに対処するには...INSERTを区別していないためです テーブルとサブクエリテーブル。




    1. CakePHP3の時間列に日付が追加されます

    2. JSONデータに対するSQLのようなクエリを可能にするJavascriptライブラリ?

    3. PostgreSQL 9.6:並列シーケンシャルスキャン

    4. 日付範囲によるSQLグループ化