ubuntuusers.de

.csv-Datei in DB importieren

Status: Ungelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

linuxlaie11

Anmeldungsdatum:
24. September 2011

Beiträge: 10

Ich bin auf ein Problem mit meiner Datenbank gestoßen. Ich habe mir eine Tabelle "postcodes" mit den Spalten "postcode" und "town" angelegt. Dann habe ich mir aus dem Netz eine .csv.Datei rausgesucht um diese in meine DB-Tabelle zu laden. Leider hatte ich damit noch keinen Erfolg.

Folgenden Code habe ich bisher ausgeführt:

select "postcodes" load data local infile 'postleitzahlen_v10.csv' replace into table postcodes fields terminated by ' '

Weiß jemand, was ich falsch mache oder wie es gehen kann?

postleitzahlen_v10.csv (312.7 KiB)
Download postleitzahlen_v10.csv

theinlein

Anmeldungsdatum:
29. Dezember 2007

Beiträge: 1279

linuxlaie11 schrieb:

Weiß jemand, was ich falsch mache oder wie es gehen kann?

Weiß jemand, was für eine DB gemeint ist?

linuxlaie11

(Themenstarter)

Anmeldungsdatum:
24. September 2011

Beiträge: 10

Ich habe mysql-server im Terminal in Ubuntu installiert. Dann habe ich mittel Rails-Code mir ein DB-Modell angelegt, u. a. mit der Tabelle "postcodes" und den Spalten "postcode" und "town". Daraufhin bin über "mysql -u root -p" in die SQL-Konsole gegangen und wollte die besagte .csv-Datei "Postleitzahlen" per SQL-Anweisung importieren.

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Der korrekte SQL-Code ist

1
 LOAD DATA LOCAL INFILE 'postleitzahlen_v10.csv' REPLACE INTO TABLE postcodes FIELDS TERMINATED BY ' ';

linuxlaie11

(Themenstarter)

Anmeldungsdatum:
24. September 2011

Beiträge: 10

Ok, ich habe es getestet und folgendes Ergebnis erhalten. Irgendwie ist keine DB gewählt, aber ich bin in dem Ordner, wo das Projekt bzw. die DB erstellt ist. Weißt Du, wie es nun ist?

Bilder

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Du musst die Datenbank wählen, in der deine Tablelle ist. Entweder mysql mit

1
mysql -u root -p deine_datenbank

aufrufen oder in mysql

1
use deine_datenbank

eingeben, bevor du die SQL-Anweisung eingibst.

linuxlaie11

(Themenstarter)

Anmeldungsdatum:
24. September 2011

Beiträge: 10

Ok, danke für die Hilfen, aber irgendwie weiß ich gerade nicht, wo ich den Namen meiner DB finde. Wie gesagt, ich habe die Tabellen in Eclipse in Rails mithilfe des scaffold-Befehls angelegt. So ist das DB-Modell entstanden, siehe schema-Datei im Anhang. Kann ich aus der schema-Datei den DB-Namen ablesen?

schema (3.6 KiB)
Download schema

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Ich kenne weder Eclipse noch Rails, aus dem Schema ist zumindest für mich kein Datenbank-Name ablesbar.

Du kannst dir in mysql mit

1
 show databases;

alle vorhandenen Datenbanken auflisten lassen, und mit

1
show tables from XY;

die Tabellen in Datenbank XY. Wenn die Datenbank wirklich schon angelegt wurde, solltest du sie damit finden können.

linuxlaie11

(Themenstarter)

Anmeldungsdatum:
24. September 2011

Beiträge: 10

Ok, jetzt sehe ich zwei DBs

mysql> show databases;

+––––––––––+

| Database |

+––––––––––+

| information_schema |

| mysql |

+––––––––––+

2 rows in set (0.00 sec)

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Die beiden Datenbanken werden intern von MySQL benutzt.

Bisher hast du also vermutlich nur ein DB-Model erzeugt, aber noch nichts an MySQL weitergegeben. Du musst also deinem Code, Eclipse, oder wer sonst dafür zuständig ist, noch sagen, dass er eine Datenbank erzeugen und dort die Tabellen gemäß dem Schema erstellen soll.

Vermutlich ist es sinnvoll, wenn du dazu eine neue Frage stellst, damit du die Leute erwischst, die sich mit Eclipse bzw. Rails auskennen.

Antworten |