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

replace intoにはwhere句がありますか?

    問題は解決したと思いますが、元の質問に答えるには:

    REPLACE INTO しません WHEREがあります 条項。

    REPLACE INTO 構文は正確に機能します INSERT INTOのように ただし、同じ主キーまたは一意のキーを持つ古い行は、新しい行が挿入される前に自動的に削除されます。

    これは、WHEREの代わりに 条項では、更新を制限するために、置き換えられる値に主キーを追加する必要があります。

    REPLACE INTO myTable (
      myPrimaryKey,
      myColumn1,
      myColumn2
    ) VALUES (
      100,
      'value1',
      'value2'
    );
    

    ...と同じ結果が得られます...

    UPDATE myTable
    SET myColumn1 = 'value1', myColumn2 = 'value2'
    WHERE myPrimaryKey = 100;
    

    ...またはより正確に:

    DELETE FROM myTable WHERE myPrimaryKey = 100;
    INSERT INTO myTable(
      myPrimaryKey,
      myColumn1,
      myColumn2
    ) VALUES (
      100,
      'value1',
      'value2'
    );
    


    1. R12.2/R12.1アップグレードのためのトップAWR有用なクエリ

    2. SQLテーブルからのブートストラップドロップダウンへのアイテムの挿入

    3. TalendでMysqlinputのスキーマをオンザフライで推測する方法

    4. データベースの効率を高めるための主な方法