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

mysqlは、既存の行を更新する代わりに新しい行を作成します

    直接UPDATEできます 値がすでに存在する場合、またはINSERT INSERT...ON DUPLICATE KEY UPDATEを使用して存在しない場合

    ただし、最初に一意の列を指定する必要があります

    ALTER TABLE user_account ADD CONSTRAINT tb_uq UNIQUE (id_user)
    

    ID_USERの場合 はすでに主キーであるため、最初の方法をスキップします。実装後、次の構文を使用できるようになります

    INSERT INTO user_account (id_user, bio) 
    VALUES($id, '$bio')
    ON DUPLICATE KEY UPDATE bio = '$bio';
    

    補足として、クエリはSQL Injectionで脆弱です。 値( s )変数のは外部から来ました。それを防ぐ方法については、以下の記事をご覧ください。 PreparedStatementsを使用する 値を一重引用符で囲むことはできません。




    1. DBユーザーパスワードをコマンドラインツールmysqladminに渡す方法はありますか?

    2. SQL * Plusで、接続されているユーザーとデータベースを表示するようにプロンプ​​トを変更するにはどうすればよいですか?

    3. perfを使用したPostgreSQLのトレース

    4. SQLAlchemy:from_selectを更新