SQL Update
来源:百度知道 编辑:UC知道 时间:2024/06/02 07:58:19
update table set name='1' where id in (.......)
由于数据量太大(几十万条)in(......)中的字段过长,会超过SQL语句的长度限制
导致程序报错.
问下,有什么方法能让我实现update语句.
但是又不受SQL语句长度限制.
最好运行速度也很快的那种.
麻烦详细说下,谢谢
由于数据量太大(几十万条)in(......)中的字段过长,会超过SQL语句的长度限制
导致程序报错.
问下,有什么方法能让我实现update语句.
但是又不受SQL语句长度限制.
最好运行速度也很快的那种.
麻烦详细说下,谢谢
用程序或sql语句或者sqlserver的dts把所有id放到一个表里比如idtable
update table set name='1' where id in (select id from idtable)
把in里的数据分段处理。
或者新建个表,把in里的数据批量插入进去再update ... where id in (select id from ...) ,批量插入这个操作的速度应该是有优化办法的,postgresql中有copy命令,其他的不太清楚了。
速度方面我想不到非常好的办法
建个表 t1,把in 里的id导到t1里,然后两个表都建索引(id),然后运行下面语句,没有比这速度更快了。
update table set name ='1' where id in (select id from t1)
update table set name='1' where id in (select id from table where (能获取id的条件))
提个思路试一下。
给表建个聚集索引。然后分片更新。
写存储过程传参数