Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Tabelle erweitern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Krieger
    hat ein Thema erstellt MySQL Tabelle erweitern.

    MySQL Tabelle erweitern

    Hallo,

    Ich bin dabei eine Joomla 1.5 Komponente mit einer zusätzlichen Abfrage zu erweitern.
    Wenn man diese Komponente neu installiert, dann wird die zusätzliche Abfrage in der Datenbank ordnungsgemäß erstellt.

    Mein Problem bezieht sich auf ein Upgrade. Sprich wenn die Komponente bereits installiert ist, soll die Zeile durch nochmaliges installieren/upgraden hinzugefügt werden.

    Ich dachte, dass es per INSERT INTO geht.

    Aber irgendwie kommer ich nicht weiter. Nun bräuchte ich eure Hilfe, um auf den richtigen Trichter zu kommen.

    Code:
    CREATE TABLE IF NOT EXISTS #__XXX_YYYYYY (
      id int(10) unsigned NOT NULL auto_increment,
      user_id int(10) unsigned NOT NULL default '0',
      firstname varchar(200) default NULL,
      lastname varchar(200) default NULL,
      company varchar(200) default NULL,
      zip varchar(10) default NULL,
      city varchar(200) default NULL,
      country varchar(200) default NULL,
      phone varchar(200) default NULL,
      fax varchar(200) default NULL,
      street varchar(200) default NULL,
      Beispiel varchar(50) NOT NULL, <--- Um diese Abfrage handelt es sich.
      `comment` text NOT NULL,
      PRIMARY KEY  (id)
    ) ENGINE=MyISAM;
    Vielen dank für eure Hilfe.

    Grüße
    Krieger

  • Krieger
    antwortet
    Kleines Update.

    Die Fehlerquelle habe ich durch eine 2. SQL Datei und einen 2. Eintrag in die install.php finden bzw. lösen können.

    Vielen Dank für den Schubser. ALTER TABLE macht genau das, was es nun soll.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von Krieger Beitrag anzeigen
    alter table #_xxx_yyyyy add Beispiel varchar(50);

    Diese Zeile war mein Gedanke. Aber das verursacht Fehler bei der Installation der Joomlakomponente.
    Und welchen?

    (Bitte gewöhne dir an, Fehlermeldungen immer konkret im Wortlaut zu zitieren - sonst kann man dir kaum weiterhelfen.)

    Das liegt vermutlich an den Befehl CREATE TABLE IF NOT EXISTS.
    Das soll ja nur die Tabelle erstellen, wenn sie noch gar nicht vorhanden ist - und wenn das Plugin vorher bereits installiert war, dann wird sie es aber sein.

    Ich möchte nun einen Weg finden, indem ich in die obige SQL Anweisung eine Befehlszeile einbaue, damit bei Drüberinstallation das Feld "Beispiel" in die Tabelle eingetragen wird.
    Das geht, wie gesagt, mit ALTER TABLE.

    Einen Kommentar schreiben:


  • Krieger
    antwortet
    Zitat von ChrisB Beitrag anzeigen
    So ganz werde ich aus deiner Problembeschreibung nicht schlau ...

    Willst du eine zusätzliche Spalte in die Struktur einer Tabelle einfügen?
    Das macht man natürlich nicht über INSERT INTO, denn das ist für Daten zuständig.

    Vermutlich suchst du ALTER TABLE?
    MySQL :: MySQL 5.1 Reference Manual :: 12.1.7 ALTER TABLE Syntax
    Ja, sorry ALTER TABLE suche ich bzw. habe ich schon geschrieben gehabt.

    alter table #_xxx_yyyyy add Beispiel varchar(50);

    Diese Zeile war mein Gedanke. Aber das verursacht Fehler bei der Installation der Joomlakomponente.

    Nochmal zu Erklätung:

    Ich habe eine Komponente, wo ich eine weitere Abfrage für ein Formular hinzugeügt habe. Dies klappt auch, wenn die Installation frisch übers Backend installiert wird.

    Dann trägt der obige SQL-Befehl die Spalte(?) in die Tabelle ein.

    Wenn aber nun jemand die alte Komponente installiert hat und die neue Version drüber installiert, wird das Feld "Beispiel" nicht in die Tabelle eingetragen.

    Das liegt vermutlich an den Befehl CREATE TABLE IF NOT EXISTS.

    Ich möchte nun einen Weg finden, indem ich in die obige SQL Anweisung eine Befehlszeile einbaue, damit bei Drüberinstallation das Feld "Beispiel" in die Tabelle eingetragen wird.

    P.S.: Ich hoffe es ist nun etwasverständlicher geschrieben.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    So ganz werde ich aus deiner Problembeschreibung nicht schlau ...

    Willst du eine zusätzliche Spalte in die Struktur einer Tabelle einfügen?
    Das macht man natürlich nicht über INSERT INTO, denn das ist für Daten zuständig.

    Vermutlich suchst du ALTER TABLE?
    MySQL :: MySQL 5.1 Reference Manual :: 12.1.7 ALTER TABLE Syntax

    Einen Kommentar schreiben:

Lädt...
X