replace和update的区别是什么
replace 来⾃于古⽼的 xBase 语法,update 来⾃于 SQL 语法。
对于单表来说,除了语法上的区别之外,功能基本相同。
对多表替换来说,replace 需要从表先有索引,然后主表 set relation to 关键字段 intto 从表,建⽴关联后才能实现根据从表条件更新主表字段内容;update 不需要从表有索引,直接在 join ... on 中指定关联字段即可。
应优先选⽤ update 语法,因为它符合 SQL 规范,更易移植,更新前也不需要切换到主表所在⼯作区。
update是什么如果要更新的表巨⼤,或对性能有严格要求,在某些情况下(例如:更新条件(for 或者 where 中指定的过滤表达式)所⽤字段已排序或有索引,⼜或只需更新⼏条连续的记录),才优先选⽤ replace 语法。因为 replace 可以先⽤ goto 记录号,然后⽤ next ?, while ... 等字句来限制更新范围,避免不必要的⾏⽐较,特别是 while ⼦句与 for 条件连⽤的⽅法,不是⽼狐狸不会知道这其中的巨⼤性能差异。
SQL 语法的操作对象是⼀个记录集,xBase 语法的操作精度到单条记录,控制粒度不在⼀个级别上,所以 xBase/vfp 在记录操作的速度上其他语⾔⽆法与之匹敌,但很多时候新⼿不容易掌握这其中的分⼨。
在使⽤REPLACE时,表中必须有唯⼀索引,⽽且这个索引所在的字段不能允许空值,否则REPLACE就和INSERT完全⼀样的。
UPDATE在没有匹配记录时什么都不做,⽽REPLACE在有重复记录时更新,在没有重复记录时插⼊。
UPDATE可以选择性地更新记录的⼀部分字段。⽽REPLACE在发现有重复记录时就将这条记录彻底删除,再插⼊新的记录。也就是说,将所有的字段都更新了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论