ストアドプロシージャ内で次のようなことをしようとしています:
REPLACE INTO mytable
SET myid = `IDvalue`, mytitle = `sMyTitle`, myoptionalvalue = IFNULL(`sMyOptValue`, myoptionalvalue);
しかし、うまくいかないようです。これを行う方法はありますか?
ありがとう!
ストアドプロシージャ内で次のようなことをしようとしています:
REPLACE INTO mytable
SET myid = `IDvalue`, mytitle = `sMyTitle`, myoptionalvalue = IFNULL(`sMyOptValue`, myoptionalvalue);
しかし、うまくいかないようです。これを行う方法はありますか?
ありがとう!
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;