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 回答