我认为没有办法绕过的这种行为
INSERT ... ON DUPLICTE KEY UPDATe。
但是,您可以在一个事务中放入两个语句,一个
UPDATE和一个:
INSERT
START TRANSACTION ;UPDATE pagesSET etc = 'randomness'WHERe name = 'bob' ;INSERT INTO pages (name, etc)SELECT 'bob' AS name , 'randomness' AS etc FROM dual WHERe NOT EXISTS ( SELECt * FROM pages p WHERe p.name = 'bob' ) ;COMMIT ;



