小编Laj*_*pad的帖子

替换成where子句吗?

我正在编写一个应用程序,我正在使用MySQL作为DBMS,我们正在下载属性提供,并且存在一些性能问题.旧架构看起来像这样:属性更新.如果受影响的行数不是1,则认为更新不成功,否则更新查询将解决我们的问题.如果更新未成功,并且受影响的行数超过1,则我们会重复并删除所有这些行.如果更新未成功,如果需要删除重复项,则会发生插入.这种架构运行良好,但存在一些速度问题,因为如果属性未更新15天,则会删除属性.从理论上讲,主要问题是删除属性,

我们的主持人告诉我使用replace而不是删除属性,所有弃用的属性都应该被视为DEAD.我已经这样做了,但由于语法错误而开始出现问题,我无法找到任何替换为where子句的示例(我想用新属性替换DEAD属性而不是删除旧属性属性并插入一个新的以确保优化).我的查询看起来像这样:

replace into table_name(column1, ..., columnn) values(value1, ..., valuen) where ID = idValue
Run Code Online (Sandbox Code Playgroud)

当然,我已经计算了idValue并处理了所有内容,但我遇到了语法错误.我想知道我是否错了,并且有一个替换的where子句.

我找到了一个替代解决方案,它甚至比替换(更简单地使用更新查询)更好,因为如果我使用替换,删除会发生在窗帘后面,但我想知道当我说那个时我错了replace into没有where子句.有关更多参考,请参阅此链接:

http://dev.mysql.com/doc/refman/5.0/en/replace.html

感谢您提前回答,LajosÁrpád

mysql

18
推荐指数
2
解决办法
4万
查看次数

标签 统计

mysql ×1