Ich habe eine demo.txt
Datei, die IP enthält. Diese Textdatei wird täglich aktualisiert. Ich habe eine Tabelle erstellt, die speichert id, ip, date
. Ich möchte unter bestimmten Bedingungen eine IP aus der Textdatei in die Datenbanktabelle INSERT
übertragen .UPDATE
- Wenn in der Textdatei eine doppelte IP gefunden wird, AKTUALISIEREN Sie
DATE
die Spalte mitCURRENT_TIMESTAMP
diesem bestimmten Datensatz. - Wenn eine neue IP gefunden wird, fügen Sie den Datensatz in die TABELLE ein.
Die Datei demo.txt sieht folgendermaßen aus:
1.1.1.1
2.2.2.2
3.3.3.3
1.1.1.1
Ich habe Folgendes ausprobiert:
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
BASH-SKRIPT:
#!/bin/bash
inputfile="demo.txt"
cat $inputfile | while read ip ; do
echo "INSERT INTO demo (ip) VALUES ('$ip');"
done | mysql -u root -proot demo;
Das obige Skript fügt die IP in die Tabelle ein, aktualisiert sie aber nicht. Die Tabelle wird nur aktualisiert, wenn ein neuer Datensatz gefunden wird.
mysql Ver 15.1 Distrib 10.3.22-MariaDB, für Linux (x86_64) mit Readline 5.1