以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何让foxtable支持存在更新,不存在增加数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131577) |
-- 作者:nxhylczh -- 发布时间:2019/3/1 17:54:00 -- 如何让foxtable支持存在更新,不存在增加数据 my sql 有一个replace 语句,百度如下 REPLACE语句 我们在使用数据库时可能会经常遇到这种情况。如果一个表在一个字段上建立了唯一索引,当我们再向这个表中使用已经存在的键值insert一条记录,那将会抛出一个主键冲突的错误。当然,我们可能想用新记录的值来覆盖原来的记录值。如果使用传统的做法,必须先使用DELETE语句删除原先的记录,然后再使用 INSERTinsert新的记录。而在MySQL中为我们提供了一种新的解决方案,这就是REPLACE语句。使用REPLACEinsert一条记录时,如果不重复,REPLACE就和INSERT的功能一样,如果有重复记录,REPLACE就使用新记录的值来替换原来的记录值。 使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作。这样就可以不必考虑在同时使用DELETE和INSERT时添加事务等复杂操作了。 在使用REPLACE时,表中必须有唯一索引,而且这个索引所在的字段不能允许空值,否则REPLACE就和INSERT完全一样的。 在执行REPLACE后,系统返回了所影响的行数,如果返回1,说明在表中并没有重复的记录,如果返回2,说明有一条重复记录,系统自动先调用了 DELETE删除这条记录,然后再记录用INSERT来insert这条记录。如果返回的值大于2,那说明有多个唯一索引,有多条记录被删除和insert。 REPLACE的语法和INSERT非常的相似,如下面的REPLACE语句是insert或更新一条记录。 REPLACE INTO users (id,name,age) VALUES(123, \'赵本山\', 50); insert多条记录: REPLACE INTO users(id, name, age) VALUES(123, \'赵本山\', 50), (134,\'Mary\',15); REPLACE也可以使用SET语句 REPLACE INTO users SET id = 123, name = \'赵本山\', age = 50; 如何让FoxTable在Access中支持这种操作? |
-- 作者:有点甜 -- 发布时间:2019/3/1 18:28:00 -- access没有这种语法。
自行使用insert、update、delete来处理
http://www.foxtable.com/webhelp/scr/0691.htm
如果需要,加入事务
http://www.foxtable.com/webhelp/scr/2933.htm
|