Gast Letscho Geschrieben 18. Juni 2003 Teilen Geschrieben 18. Juni 2003 Hallochen Habe folgendes Hindernis, mehr ist es nicht mehr. Habe ein Script erstellt, mit dem ich automatisch CD auslesen kann und die Dateien in eine txt-Datei schreiben kann. Es ist mir geglückt, diese txt-Datei in eine SQL-Tabelle einzulesen. Ich kann auch Daten anhängen (ist ja Standard). Nun meine Frage. Ich möchte für jede CD ne eigne Tabelle haben. Das Script zum lesen ist ein bash-Script. Wie bekomme ich es hin, das während die CD eingelesen wird (oder danach) eine Tabelle neu erstellt wird, der ich dann die CD-Nr als Namen gebe. Es soll nicht sein, das ich vorher über mysqladmin oder hppMyAdmin mich an der Konsole einlogen muss und dort das PW einhämmere und von Hand die Tabelle anlege. Es soll also alles in einem Rutsch gehen. Kennt jemand ne brauchbare Lösung? Achso: SuSE8.2 MySQL 3.23.55-14 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 18. Juni 2003 Teilen Geschrieben 18. Juni 2003 Original geschrieben von Letscho Ich möchte für jede CD ne eigne Tabelle haben. Das ist nicht im Sinne von relationalen Datenbanken. Du kannst eine Datei in der die entsprechenden sql Befehle stehen über: % mysql samp_db < dein.sql einlesen. Oder du läßt einen leeren Tabellen Rumpf in der Datenbank und kopierst die 3 entsprechenden Dateien mit dem neuen Tabellennamen ins Filesystem. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EvilNick Geschrieben 18. Juni 2003 Teilen Geschrieben 18. Juni 2003 In die DB bekommt er ja wohl die Werte, wenn ich seinen Text richtig lese... er will nur eine neue Tabelle anlegen... dafür schau dir in der SQL Doku mal den Befehl CREATE TABLE an Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Letscho Geschrieben 18. Juni 2003 Teilen Geschrieben 18. Juni 2003 EvilNick hat recht. Die Dateien (bis mehr als 1100 je CD) bekomme ich in die Tabelle, aber wenn ich nur 10 CD's in eine Tabelle lese habe ich ja gleich 10000 Datensätze in einer einzigen Tabelle. Dummerweise sind es mehr CD's Das erachte ich als nicht gut. Da ich aber nicht immer umständlich (ich wiederhole mich jetzt) mich über mysqladmin oder phpMyAdmin einloggen möchte und von Hand den ganzen Sch**ß erstellen will sondern gleich beim Einlesen der Daten automatisch eine Tabelle angelegt wird, habe ich ein Problem. Das importieren der Daten aus der textdatei klappt ohne Anmeldung usw. in einem Rutsch mit dem Einlesen und sortieren usw. Ich habe getestet mit mysqladmin eine leere Taelle per Komandozeile anzulegen. Datenbanken kann man so anlegen, aber bei tabellen muss ich ja auch beim Anlegen die Spalten benennen und definieren, und da geht das Gemecker los, wg. der Klammern. Sollte ich die vielleicht in Hochkommata setzen oder per \ entwerten? Mal testen. Ich habe auch mit dem Einlesen einer .sql-Datei (noch) nicht den gewünschten Erfolg erzielt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 18. Juni 2003 Teilen Geschrieben 18. Juni 2003 Original geschrieben von Letscho EvilNick hat recht. Die Dateien (bis mehr als 1100 je CD) bekomme ich in die Tabelle, aber wenn ich nur 10 CD's in eine Tabelle lese habe ich ja gleich 10000 Datensätze in einer einzigen Tabelle. Dummerweise sind es mehr CD's Das erachte ich als nicht gut. Willst du den binären Inhalt der CDs oder nur die Dateinamen speichern? Warum sollten mehrere 10000de Datensätze ein Problem sein? (Bei Dateinamen) "Meine" größte Tabelle liegt im Moment bei 42 Millionen Datensätzen. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Letscho Geschrieben 18. Juni 2003 Teilen Geschrieben 18. Juni 2003 Nur die Dateinamen. Und die CD-Nummer Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 19. Juni 2003 Teilen Geschrieben 19. Juni 2003 Vielleicht hilft dir D_A_S___H_I_E_R Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 19. Juni 2003 Teilen Geschrieben 19. Juni 2003 Original geschrieben von Letscho Nur die Dateinamen. Und die CD-Nummer Dann weiß ich nicht warum du so viele Tabellen anlegen willst, aber mir soll es egal sein. Datei mit Inhalt anlegen: # # Table structure for table `inhalt` # CREATE TABLE inhalt ( cdnummer varchar(20) NOT NULL default '', pfad varchar(255) NOT NULL default '', PRIMARY KEY (cdnummer,pfad) ) TYPE=MyISAM; # # Dumping data for table `inhalt` # INSERT INTO inhalt VALUES ('cd0001', '/bilder/test.jpg'); INSERT INTO inhalt VALUES ('cd0001', '/daten/test.txt'); Tabellenname und insert Statement nach belieben anpassen und erweitern und Datei mit folgenden Befehl laden. mysql -u deinuser -pdeinpass deinedatenbank < deinskript.sql -pdeinpass //-p und deinpass muss zusammen geschrieben werden. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.