当向表中添加一行,但首先检查它是否存在时,哪种方法是最有效的处理方法?
是否需要查询它是否存在,如果不存在,则插入。
还是在副本上使用?
或者简单地替换(如果行不存在,是否可以这样做)?
谢谢
发布于 2012-03-12 18:24:55
我认为这是MySQL中最快的方法:
REPLACE into table (col1, col2) values(1, 'ABC')编辑:
如果该行存在,MySQL将删除该行并插入一个新行。
发布于 2012-03-12 18:25:12
我想你需要看看this或者INSERT ON DUPLICATE KEY UPDATE
发布于 2012-03-12 18:27:41
如果有一个唯一的字段可以检查,比如'email‘或'login’,那么如果存在,你可以尝试插入和mysql提升错误,否则你会按照juergen d的建议进行替换。
注意:如果您出于任何原因需要时间戳,请不要使用replace (例如,在加密密码或盐中使用时间戳
https://stackoverflow.com/questions/9665301
复制相似问题