Veröffentlicht 18. Juni 200322 j 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
18. Juni 200322 j 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
18. Juni 200322 j 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
18. Juni 200322 j 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.
18. Juni 200322 j 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
19. Juni 200322 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.