批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[问题求助] 用sh脚本定时删除数据库数据,和修改数据

数据库名称
        lyy
数据库表名称
        lyy_test
数据库地址  127.0.0.1
数据库账户  testname
数据库密码  testpasswd

yun_test表内容
id   user   passwd    user_nicename      sex   addtime
1    lyy1    lyy         陆1                         1     1568044800
1    lyy2    lyy         陆2                         2     1568131200
1    lyy3    lyy         陆3                         1     1568217600
1    lyy4    lyy         陆4                         2     1568304000
1    lyy5    lyy         陆5                         2     1568390400
1    lyy6    lyy         陆6                         1     1568476800

1,对 yun_test 表  删除日期为 2019-10-14 前的所有数据(自然周 每次删除1W行 暂停30秒)
2,对 yun_test 表  删除字段sex为 2 并切时间早于 2019-10-17(一天) 前的所有数据
3,将 yun_test 表  user_nicename 陆6 更新  sex 的字段为2

什么数据库,MySQL? Oracle?
你是不会写SQL语句?还是不知道怎么用sh连接数据库并执行SQL语句呢?参考:
https://mp.weixin.qq.com/s/QxbMDwWiuWJIBublB1Dp9A
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

本帖最后由 pl05135513 于 2019-10-17 11:07 编辑
什么数据库,MySQL? Oracle?
你是不会写SQL语句?还是不知道怎么用sh连接数据库并执行SQL语句呢?参考:
Batcher 发表于 2019-10-17 10:21



    mysql数据库,Centos环境

TOP

回复 3# pl05135513


先把需要执行的 SQL 语句放到 XXX.sql 里面,然后执行命令:
mysql -h服务器地址 -u用户 -p密码 < XXX.sql
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

回复  pl05135513


先把需要执行的 SQL 语句放到 XXX.sql 里面,然后执行命令:
mysql -h服务器地址  ...
Batcher 发表于 2019-10-17 11:29



   主要是 这个 (自然周 每次删除1W行 暂停30秒) 怎么写

TOP

回复 5# pl05135513


脚本放在 crontab 里面可以实现每周执行一次,例如:
0 0 * * 1 /tmp/test.sh

删除1W行可以在select语句中加个限定条件,mysql里面用的是 limit
SELECT * FROM tbl LIMIT 5;     # Retrieve first 5 rows
https://dev.mysql.com/doc/refman/5.6/en/select.html

暂停30秒的目的是什么呢?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

就是 比如 我执行了  SELECT * FROM tbl LIMIT 5000;   然后 间隔30秒 再次执行  一直到 上个自然周addtime查不出来为止

TOP

回复 7# pl05135513


    暂停30秒的目的是什么呢?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

不让数据库卡死  数据量比较大  一次删除十万 我觉得 还坑得住 不然 扛不住

TOP

返回列表