用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语句呢?参考:
[url]https://mp.weixin.qq.com/s/QxbMDwWiuWJIBublB1Dp9A[/url] [i=s] 本帖最后由 pl05135513 于 2019-10-17 11:07 编辑 [/i]
[quote]什么数据库,MySQL? Oracle?
你是不会写SQL语句?还是不知道怎么用sh连接数据库并执行SQL语句呢?参考:
[size=2][color=#999999]Batcher 发表于 2019-10-17 10:21[/color] [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224141&ptid=54007][img]http://www.bathome.net/images/common/back.gif[/img][/url][/size][/quote]
mysql数据库,Centos环境 [b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=224143&ptid=54007]3#[/url] [i]pl05135513[/i] [/b]
先把需要执行的 SQL 语句放到 XXX.sql 里面,然后执行命令:
mysql -h服务器地址 -u用户 -p密码 < XXX.sql [quote]回复 pl05135513
先把需要执行的 SQL 语句放到 XXX.sql 里面,然后执行命令:
mysql -h服务器地址 ...
[size=2][color=#999999]Batcher 发表于 2019-10-17 11:29[/color] [url=http://www.bathome.net/redirect.php?goto=findpost&pid=224144&ptid=54007][img]http://www.bathome.net/images/common/back.gif[/img][/url][/size][/quote]
主要是 这个 (自然周 每次删除1W行 暂停30秒) 怎么写 [b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=224145&ptid=54007]5#[/url] [i]pl05135513[/i] [/b]
脚本放在 crontab 里面可以实现每周执行一次,例如:
0 0 * * 1 /tmp/test.sh
删除1W行可以在select语句中加个限定条件,mysql里面用的是 limit
SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows
[url]https://dev.mysql.com/doc/refman/5.6/en/select.html[/url]
暂停30秒的目的是什么呢? 就是 比如 我执行了 SELECT * FROM tbl LIMIT 5000; 然后 间隔30秒 再次执行 一直到 上个自然周addtime查不出来为止 [b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=224307&ptid=54007]7#[/url] [i]pl05135513[/i] [/b]
暂停30秒的目的是什么呢? 不让数据库卡死 数据量比较大 一次删除十万 我觉得 还坑得住 不然 扛不住
页:
[1]