我试图将一个MySQL查询写入" upsert"进入下表:
ID (auto_int) | Code (unique) | Name (unique) | LastMod | LastBy | Other fields ======================================================================== 1 | Code1 | Name1 |2015-2-2 |'system'|... 2 | Code2 | Name3 |2015-2-17|'system'|...
我来自SqlServer的背景,我真的很难不使用If语句。
这需要是一个SQL块(不是函数/ SP),理想情况下是事务安全的。 (具有START TRANSACTION; / COMMIT;)
我开始于:
START TRANSACTION;
SET @lastModified = '2015-02-18 22:21:51';
SET @Code = 'code4';
SET @Name = 'name4';
SET @ModifiedBy = 'system';
UPDATE test1.catalog SET LastModified = @lastModified, ModifiedBy = @ModifiedBy WHERE Code = @Code AND Name = @Name;
INSERT IGNORE INTO test1.catalog (LastModified, ModifiedBy, Code, Name) VALUES (@lastModified, @modifiedBy, @code, @name);
#???
SELECT * FROM test1.catalog WHERE name = @name AND code = @code;
COMMIT;
谢谢!