linux – 如何忽略MySql错误并继续下一个查询?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何忽略MySql错误并继续下一个查询?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1150字,纯文字阅读大概需要2分钟。
内容图文
我创建了一个shell脚本,通过连接到DB只一次连接到dbcpd.log文件中的DateBase和INSERT IP和MAC:
#/!bin/bash
dhcpLogFile="/var/log/dhcpd.log"
NumberOfLines=$(awk '/DHCPACK/ { print $8} ' $dhcpLogFile | awk '!x[$0]++'|awk 'BEGIN{i=0}{i++;}END{print i}')
j=1
while [ $NumberOfLines -gt 0 ]
do
ip=$(awk '/DHCPACK/ { print $8} ' $dhcpLogFile | awk '!x[$0]++' |cut -f$j -d$'\n')
mac=$(awk '/DHCPACK/ { print $10} ' $dhcpLogFile | awk '!x[$0]++' |cut -f$j -d$'\n')
let "j +=1"
let "NumberOfLines -=1"
INSERT INTO IP_MACTable (IP_Address, MAC) VALUES ('$ip','$mac');
done | mysql -u root --password='pw' MatchingDB
在MySql中,我将“IP,MAC”属性设置为唯一,因此“ip,mac”字段不会重复,因此当它在dhcp.log的日志中重复时,DB会回复消息ERROR 1062(23000)at第1行:重复条目’192.168.1.20-00:0c:29:95:fd:10’用于键’IP_Address’
我的问题是:由于我只连接到DB一次,sql会在一个连接中解释多个查询,但问题是当发生错误时它不会完成解释其他查询,所以它是一种忽略SQL错误的方法,继续其他查询?
解决方法:
像这样更新你的插入语句:
INSERT IGNORE INTO IP_MACTable (IP_Address, MAC) VALUES ('$ip','$mac');
您还可以使用–force选项强制mysql继续出错:
mysql -u root --password='pw' --force MatchingDB
内容总结
以上是互联网集市为您收集整理的linux – 如何忽略MySql错误并继续下一个查询?全部内容,希望文章能够帮你解决linux – 如何忽略MySql错误并继续下一个查询?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。