我有一个demo.txt
包含 ip 的文件。该文本文件每天更新。我创建了一个存储id, ip, date
.我想在某些条件下INSERT
将UPDATE
文本文件中的 ip 放入数据库表中。
- 如果在文本文件中发现重复的 IP,则将更新列更新
DATE
为该CURRENT_TIMESTAMP
特定记录。 - 如果找到新的 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