MYSQL - Tabelle wird falsch befüllt.

ka0t

Neuling
Thread Starter
Mitglied seit
20.01.2010
Beiträge
88
Ich setze gerade eine SQL- Datenbank händisch über die Shell auf, um mich mit SQL vertraut zu machen.

Die Datensätze in die Datenbank werden aus einer txt eingeparst.
Jeder Datensatz ist mit einem tab getrennt.
Bei allen Datenbanken hat das funktioniert- nur bei der Kundendatenbank hat es Probleme. Das kann eventuell davon kommen, dass der Vorname nicht immer vergeben wird. Ich habe dann zwei Tabstopps (also auch kein Leerzeichen) bei der Stelle des Vornamens gemacht.

Die txt :



1 Gundermann Gottlieb Frankfurter Str. 156 61137
2 Zentro-Immobilien GmbH Bundesalee 231 12135
3 Kfz-Meier GBR Windmühlstr.5 10159

Die wird einfach per LAOD DATA INFILE in die noch leere Datenbank kopiert.

Der Datensatz inkl. explain etc :

Code:
mysql> SELECT * FROM Kunden;
+-----------+------------------------+----------+----------------------+--------------+-----------------+
| Kunden_ID | Name                   | VORNAME  | Strasse              | Postleitzahl | Ansprechpartner |
+-----------+------------------------+----------+----------------------+--------------+-----------------+
       | NULL            |           | Gottlieb | Frankfurter Str. 156 | 61137
       | NULL            | lien GmbH |          | Bundesalee 231       | 12135
       | NULL            |           |          | Windmühlstr.5        | 10159
|         4 |                        |          |                      |              | NULL            |
|         5 |                        |          |                      |              | NULL            |
+-----------+------------------------+----------+----------------------+--------------+-----------------+


mysql> explain Kunden;
+-----------------+-------------+------+-----+---------+----------------+
| Field           | Type        | Null | Key | Default | Extra          |
+-----------------+-------------+------+-----+---------+----------------+
| Kunden_ID       | smallint(6) | NO   | PRI | NULL    | auto_increment |
| Name            | char(25)    | NO   |     | NULL    |                |
| VORNAME         | char(25)    | NO   |     | NULL    |                |
| Strasse         | char(25)    | NO   |     | NULL    |                |
| Postleitzahl    | char(25)    | NO   |     | NULL    |                |
| Ansprechpartner | char(25)    | YES  |     | NULL    |                |
+-----------------+-------------+------+-----+---------+----------------+


Was mache ich da falsch ??

Das er ID 4 und 5 angelegt hat hat an 2 leeren Zeilen gelegen habe ich herausgefunden.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich bin mir jetzt nicht sicher wie genau mysql das handled, aber schreib doch die dateien einfach um?

sollte ja an sich relativ problemlos mit einem replace gehen:

replace "\t" ";" -- dump.sql
 
Wenn ich das Feld bei Vorname in der txt leer lasse verziept es mir die ganze row. Schreibe ich irgendwas rein klappt das. Am Ende hat es funktioniert nix hinzuschreiben. Anscheinend mache ich mit der Abtrennung der einzelnen Werte was falsch.
 
Über den Workbench komme ich nicht drauf. Auch über Standard TCP/IP over ssh mit den passenden usern kommt der Fehler. Laut netsat -tulpn ist mein server bis dato auch noch nicht von extern erreichbar.
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2155/mysqld
Müsste es über TCP/IP over ssh denn laufen ?
 
TCP/IP über ssh sollte funzen. Ansonsten kannst du ja auch einfach in der MySQL Konfig "bind-address = 0.0.0.0" setzen.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh