0

ストアドプロシージャ内で次のようなことをしようとしています:

REPLACE INTO mytable
SET myid = `IDvalue`, mytitle = `sMyTitle`, myoptionalvalue = IFNULL(`sMyOptValue`, myoptionalvalue);

しかし、うまくいかないようです。これを行う方法はありますか?

ありがとう!

4

1 に答える 1

1

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;
于 2012-12-31T15:24:47.423 に答える