Datei importieren

T

tiptel170

Tripel-As
Hallo Leute,
vielleicht hat jemand einen ansatz um eine date zu importieren in eine mysql-datenbank.

Bekomme die fehlermeldung, wenn ich dies mache:
Code:
 mysql -uroot < generic.sql
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ms@extern.txt.ddd' at line 1

Generic sieht so aus:
Code:
ms@extern.txt.ddd;ms@hallo.welt.com

Es soll in die tabelle rein: generic in der datenbank Postfix

Die tablle hat folgendes format:

Code:
intern | rewrite

Mit phpmyadmin, damit kann ich die csv-datei importieren. Aber wie geht das auf der komandozeile? Möchte dies in ein shell-script schreiben - keine lust auf manuelles übertragen ;-)

Gruss tiptel170
 
Damit komme ich nicht richtig weiter, auf der seite war ich schon.
 
"es geht nicht" ist keine Fehlermeldung - und ohne konkrete Eingabe von Dir und die Fehlermeldung - kann man wohl nicht weiter helfen...
 
Geht das nur mit php? Wenn ja, dann habe ich keine ahnug wie man das script aschreibt.

Code:
LOAD DATA LOCAL
        INFILE '/home/www/servers/www.servername.de/tmp/import.csv'
        REPLACE
        INTO TABLE tabellenname
        FIELDS
                TERMINATED BY ';'
                OPTIONALLY ENCLOSED BY '"';

Wie soll ich es schreiben, wenn hier nur dieses beispiel vorliegt. Hab leider keine kenntnisse in php. Mein gedanke war es in einer bash zu realisieren - es sollte doch einen einfachen weg geben die text-datei mit zwei spalten zu importieren.

Gruss tiptel170
 
Hi

Irgendwie fehlt hier das SQL Statement. Du könntest die CSV (oder text?) Datei einlesen und jeden Datensatz in eine Variable speichern, sofern man die Datensätze voneinander unterscheiden kann. Vielleicht durch das ; (Semikolon) ? Und dann die Datensätze per SQL übertragen.
Code:
Insert into generic (spaltenname) values($deinevariable);
Das ganze dann halt per Schleife für jeden Datensatz.

http://dev.mysql.com/doc/refman/5.1/de/insert.html
 
In der konsole kann ich es jetzt zwar machen:

Code:
# mysql -uroot
mysql> use Postfix
mysql> LOAD DATA  INFILE "/mnt/System/Markus/SLES10-Server/19.Postfix/generic.sql" INTO TABLE generic;
Query OK, 7 rows affected, 7 warnings (0.00 sec)
Records: 7  Deleted: 0  Skipped: 0  Warnings: 7

So geht es, aber wie kann ich es in einer script-datei erstellen?
 
Abend,

Code:
# mysql -uroot -e 'LOAD DATA  INFILE "/mnt/System/Markus/SLES10-Server/19.Postfix/generic.sql" INTO TABLE generic;' Postfix
"-e, --execute=name Execute command and quit."
Sollte das am Stück tun.

mfg
HeadCrash
 
Hallo HeadCrash,

sehr gut danke! Genau, das habe ich gesuscht.

Gruss tiptel170
 

Ähnliche Themen

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Akonadi startet nicht mehr

Bilfe bei 1064 - You have an error in your SQL syntax; check the manuel that correspo

dovecot und postfix Konfiguration Problem

Zurück
Oben