如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。
我好像昨天回答过,你不相信可以上机测试:UPDATE 表1 SET address=(SELECT 表2.address from 表2 WHERE 表2.name=表1.name)
上面的语句非常简单,很容易明白,语句工作时,扫描表1的所有记录,对于每一条记录,按照name去查找表2的address并替换本表此字段。
假设你要更新 ID =1,如果用MYSQL是可以实现的(目前只有MYSQL支持这样的语法)。参考下面的语法。UPDATE employee t1,info t2
SET t1.name='abc', t1.password='123', t2.tell='123456', t2.address='zxy'
WHERE t1.ID=t2.ID and t1.ID = 1
但是按照SQL标准,在其它数据库里SQL 语句不支持 用UPDATE来同时更新两张表。你这么做可移植性不好。而且和拆成两条来比较也没优势的地方。
用其它数据库你必须拆成两条UPDATE,假设你要更新 ID =1的 一个人的两部分信息那么可以参考下面的方法。
UPDATE employee SET name='abc', password='123', WHERE ID = 1
UPDATE info SET tell='123456', address='zxy' WHERE ID = (select ID from employee where ID=1)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)