PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : import mysql



27-01-2001, 13:08
ich habe noch nicht viel erfahrung mit mysql
ich mochte nun folgendes machen

ich habe eine text-datei
aaaa , bbbb , cccc , dddd
aaaa , bbbb , cccc , dddd
usw.
diese möchte ich in eine mysql-datenbank importieren
datenbank anlegen (felder,tabellen,usw.) kann ich

am liebsten möchte ich nun von der console ein sql-befehl oder ein kurzes script aufrufen
es sollte nun die datensätze der txt-datei importiert werden

besten dank im voraus
hjn

27-01-2001, 15:48
Ich bin genau so ein Newbie. Kann also wenig zur sache selbst beitragen.

Ich fand zufällig ein Online-Buch zu MySql unter http://www2.little-idiot.de/mysql/

Vielleicht hilft's

Hans

27-01-2001, 17:38
a little bit unix magic:

erst mal weg, mit den Lehrzeichen:
am Zeilenanfang
am Zeilenende
vor den Kommas
hinter den Kommas

cat data.txt | sed -e 's/^ \+//' -e 's/ \+$//' -e 's/ \+,/,/g' -e 's/, \+/,/g' > strip.txt
Jetzt wandeln wir die Zeilen durch Suchen und Ersetzen in SQL-Befehle:

cat strip.txt | sed -e 's/\(.*\),\(.*\),\(.*\),\(.*\)/\insert table values ("\1","\2","\3","\4");/' > insert.txt
Nun muessen wir das ganze nur noch an mysql fuettern (Die Table table sollte schon in der Datenbank database existieren)

mysql database < insert.txt

Ersetze data.txt, table und database durch die richtigen Namen.


[Dieser Beitrag wurde von jgbauman am 27. Januar 2001 editiert.]

27-01-2001, 18:46
besten dank für die schnellen antworten

gruss
hjn

29-01-2001, 21:54
Das kann doch nicht wahr sein: Da liegt eine Textdatei im Format ASCII_CSV vor, und man muss erst mit dem sed rumhantieren im die Daten in eine Datenbank zu bekommen. Gibt es da keine vorgefertigten Komponenten?

Bei dBase (kenne die Versionen bis 5.x) hiess das (bei geöffneter Tabelle) einfach:

append from FileName Type Delimited [with char]

Würde mich wundern, wenn es ähnliches nicht auch für mySQL und Co. gibt.

Hans

30-01-2001, 08:48
wie wärs mit

load data local infile 'foo' into table bar fields terminated by ' , ';



------------------
mfg,
marsellus

30-01-2001, 20:11
ich wolte mit meiner frage keine diskusion eroefnen
ich finde die anweisung von user jgbauman sehr gut
wie ich schon schrieb bin ich neuling im sql-umfeld
wie man den befehl sed anwenden kann war interessant
aber als neuling besonders das ergebnis
es wurden ja sql-befehle erzeugt
es gibt bestimmt auch programme die das alles automatsch erledigen
vieleicht is es altmodisch aber ich moechte immer gern wissen was eigendlich da passiert
zur information ich habe schon viele oracle datenbanken installiert (Novell) und datenbanken angelegt
dabei wurden fertige scripts gestarten und nach einiger zeit war alles fertig
was da im hintergrund passierte ... keiner wuste es

mfg
hjn