從文字檔案中取得輸入,然後使用 shell 腳本插入和更新資料庫表

從文字檔案中取得輸入,然後使用 shell 腳本插入和更新資料庫表

我有一個demo.txt包含 ip 的檔案。該文字檔案每天更新。我創建了一個存儲id, ip, date.我想在某些條件下INSERTUPDATE文字檔案中的 ip 放入資料庫表中。

  1. 如果在文字檔案中發現重複的 IP,則將更新列更新DATE為該CURRENT_TIMESTAMP特定記錄。
  2. 如果找到新的 IP,則將記錄插入到表中。

demo.txt 檔案如下所示:

1.1.1.1
2.2.2.2
3.3.3.3
1.1.1.1

我已經嘗試過這些:

 CREATE TABLE `demo` (
  `id` int(25) NOT NULL AUTO_INCREMENT,
  `ip` varchar(25) NOT NULL,
  `date` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

重擊腳本:

#!/bin/bash
inputfile="demo.txt"
cat $inputfile | while read ip ; do
     echo "INSERT INTO demo (ip) VALUES ('$ip');"
        done | mysql -u root -proot demo;

上面的腳本將 ip 插入表中,但不更新表。只有在發現新記錄時才會更新。

mysql Ver 15.1 Distrib 10.3.22-MariaDB,適用於 Linux (x86_64),使用 readline 5.1

相關內容