Zum Inhalt springen

MySQL(linux) --> autom. Tabellenerstellung?


Gast Letscho

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...