* Juergen L. wrote on Tue, Dec 27, 2005 at 00:18 +0100:
wie kann ich eine txt datei in mysql automatisch füllen der dateiinahlt sieht in in etwas folgt aus: 3434324^34134432^fdsgfdg^text1^text2^text3^-^-^-
Ist sie kleiner als ein paar MB?
zu beachten ist das das zeichen ^ sozusagen der platzhalter ist. nach jedem ^ beginnt die nächste tabelle
Tabelle? Meinst Du Spalte?
das skript muss einmal mittag ablaufen und einmal nachts wer hat hierzu ideen
Falls mySQL kein tab-seperarierte Files lesen kann, könnte man das nach SQL "reformatieren", beispielsweise mit einer perl pipe. Ich hab das mal als Script gemacht; eigentlich ginge fast ein Einzeiler, aber mit der Shell-quoterei... na ja. Also z.B. sowas wie: steffen@link:~> cat x2.pl #!/usr/bin/perl # STDIN lesen while (<>) { # "\n" am Ende weg chomp; # split (-a würde das \n im letzten haben) @F = split('\^'); # SQL Statement erzeugen print "INSERT INTO mytable VALUES ('" . join("', '", @F) . "');\n"; } steffen@link:~> echo "3434324^34134432^fdsgfdg^text1^text2^text3^-^-^-" \ | ./x2.pl INSERT INTO mytable VALUES ('3434324', '34134432', 'fdsgfdg', 'text1', 'text2', 'text3', '-', '-', '-'); Ist so natürlich nicht zu gebrauchen; als erstes sollte wohl ein "begin;" geprinted werden, am Ende ein "commit;" falls kein Fehler auftrat (falls mySQL das inzwischen kann, keine Ahnung), vielleicht noch ein "delete from mytable;" davor, falls Datensätze doppelt werden können etc. <sidenote> IMHO nicht so gut "mit schnell mal gemacht", und was schnell mal gemacht ist, braucht selten eine SQL Datenbank :) </sidenote> oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.