如何快速定时更新数据库?

victorchen_2000 2001-01-03 10:25:00
某Table A 有10万条记录(可能没有),以uid为关键字段(不重复)。要定时(5-10分钟)更新各记录。如果某uid的记录存在,则更新它的其余字段,否则添加该记录。
因为要判断该uid的记录是否存在,所以要 先 Delete该uid的记录,然后 update.
用什么sql语句能快速执行?
...全文
164 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
victorchen_2000 2001-01-04
  • 打赏
  • 举报
回复
只用sql指令,一定要先delete再insert吗?100000个记录,每10分钟更新一次,好象时间不够啊。
victorchen_2000 2001-01-03
  • 打赏
  • 举报
回复
我用的是linux下的postgresql,在sql提示符下输入if ..... 说错误:
ERROR: parser:parse error at or near "if"
michaelzhang 2001-01-03
  • 打赏
  • 举报
回复
1、键好UID的索引。
2、在SQLSERVER中可用thinking_man的方法,若是ORACLE,只需用COUNT(*)判断是否存在
即可。
thinking_man 2001-01-03
  • 打赏
  • 举报
回复
1.
if exists(select Uid from tableA where Uid=@Uid)
update tableA
set field1=@vF1,
field2=@vF2,
...
where Uid=@Uid
else
insert tableA(Uid,field1,field2,...)
values(@Uid,@vF1,@vF2,...)
2.--当下次更新不需要考虑上次同条记录的其他字段值时(除UID字段外其他皆可覆盖)
delete tableA where Uid=@Uid
insert tableA(Uid,field1,field2,...)
values(@Uid,@vF1,@vF2,...)
arthree 2001-01-03
  • 打赏
  • 举报
回复
需要更新的uid从哪里来的?
michaelzhang 2001-01-03
  • 打赏
  • 举报
回复
postgresql支持存储过程吗?写一个PROCEDURE搞定。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧