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

mysqli挿入-ただし、重複していない場合のみ

    uniqueを配置することを検討してください この特定のテーブルのインデックス。次のコードは、インデックスを追加し、現在の重複を削除します。

    ALTER IGNORE TABLE `RegisteredUsersTable` ADD UNIQUE INDEX unique_email (`UserEmail`);
    

    これを追加したら、INSERT IGNOREを使用します またはINSERT...ON DUPLICATE KEY UPDATE 。重複がない場合にのみ、挿入を実行します。

    $mysqli->query("INSERT IGNORE INTO RegisteredUsersTable (UserName, UserEmail) VALUES ('".$newUserName."', '".$newUserEmail."')");
    

    電子メールがすでにデータベースにあるため、Mysqlはエラーをスローします。ただし、IGNOREコマンドは、このクエリのエラーに注意を払わないようにスクリプトに指示しています。この場合、重複する行が予想されるためです。

    また、INSERT IGNOREを使用しても、失敗または成功のメッセージでユーザーに警告する方法があります。 。 MYSQL LAST_INSERT_ID()を使用します 。 IDが与えられた場合、それが挿入されました。そうでない場合は、メールはすでにそこにあります(または別のエラーがありました)。



    1. mysqlはn個の最後の行から選択します

    2. SQLServerのMaven依存関係の設定

    3. MySQLのフィールドから最初の明確な一致のみを選択するにはどうすればよいですか?

    4. 開発者向けの最高のデータベースソフトウェア(2022年版)