linux 定时器任务删除postgres数据库中的数据
发布网友
发布时间:2022-04-20 15:40
我来回答
共1个回答
热心网友
时间:2022-04-09 03:18
没用过postgres,原理应该一样。应该不能直接写那个psql语句。shell脚本中执行mysql 语句的方法,参考下。
方法一:使用文件标签EOF重定向的方法的:
#!/bin/bash
user=root
pass=123456
db=mysql
tablename=user
mysql -s --line-numbers -f -u$user -p$pass -D $db --delimiter=";" -E<
--SELECT host,user from $tablename order by 1;
SELECT host,user from $tablename order by 1;
quit
EOF
优点:sql与shell 可以分离,写sql时不用关系shell。
方法二:使用mysql参数的方法
mysql -u$user -p$pass -D $db -e "select host from user;"
当然,可以通过将传参的方式来传递 -e 后面的语句。
方法三 将每一步需要执行的语句保存到 tmp.sql 中,最后在使用
mysql -u uname -p pwd < tmp.sql追问psql -U dbadmin -d iptv-watcher -c "delete from qualifiedhist where inserttime in(select inserttime from qualifiedhist where inserttime <= current_timestamp - interval'30 days')"
正确的写法是这样的!!~~~