Incorrect string value: '''' for function inet_aton
因為來源資料有ip,所以用inet_aton轉換成整數存入,都運作好幾個月的腳本怎麼會升級後出錯呢?而且它都是顯示第一行出錯,我怎麼看第一行都是對的@@
後來嘗試了一下inet_aton在5.6與5.7的差異
各位猜猜看,下面哪個會出錯?
select inet_aton(null);
select inet_aton(0);
select inet_aton('');
在5.6,都不會錯
在5.7,最後那個會告警,如果用在Insert會失敗的
所以在5.7 inet_aton的參數可為null,為0,就是不能是空字串''喔
那來源資料欄位值為空,用LOAD DATA INFILE入庫,空的資料理應為null ? 用inet_aton應該不會出錯啊!問題在於LOAD DATA INFILE處理空資料或是缺漏欄位的會直接更新為空字串'',所以才會出錯啊,最後我是用if判斷空字串時轉成0處理掉了
Set WanIp=INET_ATON(if(@WanIp='',0,@Wanip))
0 意見:
張貼留言