Anfängerfrage: Bestehende Tabelle um Felder erweitern aus (php)Plugin

MB1969

Neuer Benutzer
Beiträge
3
Hallo zusammen,

ich habe als totaler SQL Neuling folgendes Problem:

Eine MySQL Datenbank Tabelle muss aus einem Plugin-Script (PHP) erweitert werden. Die speziellen PHP Script Details und weitere systemspezifische Anpassungen sind eine andere Baustelle.

Konkret: Die Tabelle muss um weitere Attribute erweitert werden und sieht ca. so aus:

Feld | Typ | Kollation | Attribute | Null | Standard | Extra
id int(11) Nein Auto_increment
articleID
attr1 varchar(255) latin1_swedish_ci
attr2
...
attr20

Es soll attr21 bis attr31 hinzugefügt werden. Das muss wohl per:


ALTER TABLE ADD (<felddefinitionsliste>)

gemacht werden, wobei mir aber die praktische Schreibweise der Felddefinitionsliste Probleme macht und welche Bezeichnugen und Werte denn auf meinen Fall hier bezogen jetzt genau aufgeführt werden müssen. In SQL-Wikis war das für mich zu allgemein und ich konnte die Beispiele nicht umformen.

Also z.B.

ALTER TABLE s_articles_attributes ADD (id int(NULL), )

...ist das so überhaupt richtig? Was muss im ersten Feld stehen? attr21? Usw...

...Und ich bin mir auch nicht sicher, ob dann noch etwas wie

INSERT INTO <name> [ <spaltenliste> ] VALUES ( <werteliste> )

nötig ist. Oder ob mit dem ALTER Befehl alles getan ist.

Als Beispiel noch kurz, wie DB-Operationen innerhalb des Plugin-Codes behandelt werden. Das Beispiel hier ist nicht von mir und es geht auch um etwas ganz anderes:
PHP:
if ($blogCategory){
            $sql = "
            SELECT SQL_CALC_FOUND_ROWS
                a.id as articleID,aDetails.id AS articleDetailsID, weight,ordernumber,datum,releasedate,
                ...
                unitID,
                attr1,attr2,attr3,attr4,attr5,attr6,attr7,attr8,attr9,attr10,
                attr11,attr12,attr13,attr14,attr15,attr16,attr17,attr18,attr19,attr20,

Die endgültigen Werte der Attr-Felder werden im Backend der Web-Applikation definiert. Wichtig ist hier nur, das sie von dem Plugin her angelegt werden.

Ich muss und will noch viel lernen, aber das ist jetzt kurzfristig nicht zu schaffen und meine Erfahrungen liegen eher im Bereich Template/CSS/Smarty

Könntet Ihr mir bitte helfen und zumindest einen Hinweis geben, wie ich jetzt am besten weitermachen muss?

Grüße
MB1969
 
Werbung:

MB1969

Neuer Benutzer
Beiträge
3
Hey danke schon mal.

muss ich also offenbar so vorgehen?:
ALTER TABLE s_articles_attributes ADD COLUMN ID; VALUES (Attr21, Attr22, Attr23, Attr24, Attr25, Attr26, Attr27, Attr28, Attr29, Attr30 Attr31)

...weil "ID" in der ersten Spalte steht und Attr1-20 direkt darunter?!
...Die neuen Attr21-Attr31 dann in Klammern gesetzt dahinter als Werteliste?

Grüße
MB1969
 

Walter

Administrator
Teammitglied
Beiträge
440
Was möchtest Du genau tun?

Der ALTER TABLE fügt in der Tabelle dauerhaft eine neue Spalte ein (stell Dir das einfach vor wie in Excel wenn Du eine neue Spalte einfügst, sie ist leer).
Der INSERT wiederum erzeugt einen neue Zeile in der Tabelle.
 

MB1969

Neuer Benutzer
Beiträge
3
sorry - war wohl etwas zu chaotisch meine Eröffnungsfrage... Gutes Beispiel von Dir übrigens.

Ich muss diese Tabelle (siehe bild) um weitere Attribute (Attr21 -31) erweitern. Bis Attr20 ist in der Tabelle vorgegeben und muss so erhalten bleibenTabelle.png

...Offenbar brauche ich also doch INSERT und nicht ALTER TABLE?
(Später muss das ganze in eine Plugin-Struktur wie oben, aber eins nach dem anderen.

Aber wie sieht die parktische Syntax dafür genau aus?
INSERT INTO <name> [ <spaltenliste> ] VALUES ( <werteliste> )

Grüße
MB1969
 

ukulele

Datenbank-Guru
Beiträge
4.579
Code:
ALTER TABLE s_articles_attributes ADD attr21 VARCHAR(255);
ALTER TABLE s_articles_attributes ADD attr22 VARCHAR(255);
ALTER TABLE s_articles_attributes ADD attr23 VARCHAR(255);
...
 
Werbung:
Oben