Zum Inhalt springen

MySQL(linux) --> autom. Tabellenerstellung?


Empfohlene Beiträge

Geschrieben

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

Geschrieben
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

Geschrieben

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

Geschrieben

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.

Geschrieben
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

Geschrieben
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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...