table1字段有name,city,adress
table2 字段有name,city_id,street等
我现在想把table1的name,city与table2的name,city_id 关联将table1中的adress更新到table2的street中
我写的sql为:
update table2 set street=
(
select distinct adress from table1
where table2.name=table1.name and to_char(city_id)=table1.city
)
我执行了 速度非常慢 好几个小时了还没完事 请问各位大侠有什么快速更新的方法吗
8 个解决方案
#1
table2 name city_id
table1 name city
建立索引没有
table1 name city
建立索引没有
#2
没有啊
#3
建立索引
#4
建立索引以后呢
#5
table1 and table2 的结构 ?
#6
在Informix中没有建立索引,速度是非常慢的,超过四万笔的数据,最好不要用SQL语句一次更新,请写脚本用批处理方式进行。或者写小程序更新。
#7
高效的方法:建议提取表2所有字段,加表1的addrss字段,直接生成新表:
1、创建你需要的新表;
2、insert into 新表
select table2.name, table2.city, table1.address, table2.需要的字段 ......
from table2, table1
where table2.name=table1.name and to_char(city_id)=table1.city
;
1、创建你需要的新表;
2、insert into 新表
select table2.name, table2.city, table1.address, table2.需要的字段 ......
from table2, table1
where table2.name=table1.name and to_char(city_id)=table1.city
;
#8
注意源表关联字段要建索引,最后删除不需要的表,再对新表更名,重建索引
#1
table2 name city_id
table1 name city
建立索引没有
table1 name city
建立索引没有
#2
没有啊
#3
建立索引
#4
建立索引以后呢
#5
table1 and table2 的结构 ?
#6
在Informix中没有建立索引,速度是非常慢的,超过四万笔的数据,最好不要用SQL语句一次更新,请写脚本用批处理方式进行。或者写小程序更新。
#7
高效的方法:建议提取表2所有字段,加表1的addrss字段,直接生成新表:
1、创建你需要的新表;
2、insert into 新表
select table2.name, table2.city, table1.address, table2.需要的字段 ......
from table2, table1
where table2.name=table1.name and to_char(city_id)=table1.city
;
1、创建你需要的新表;
2、insert into 新表
select table2.name, table2.city, table1.address, table2.需要的字段 ......
from table2, table1
where table2.name=table1.name and to_char(city_id)=table1.city
;
#8
注意源表关联字段要建索引,最后删除不需要的表,再对新表更名,重建索引