Hallo zusammen,
Da meine Anwendung auf vielen Systemen läuft und die Datenbankstruktur sich ab und zu erweitert, möchte ich ein Update-Script für die Datenbank erstellen. Dazu habe ich mir schon mal was gebaut:
Am Ende sollen dann etliche CALL-Aufrufe alle noch nicht vorhandene Spalten erstellen. Dazu muss ich natürlich noch die Feldtypen und Größen übergeben.
Im Moment klemmt es aber leider schon: Das Select-Statement scheint den Parameter zu verwenden, jedoch wird im ALTER TABLE mir nun eine neue Spalte mit dem Namen ColName erstellt
Kann man als 2. Stringparameter die komplette Spaltendefinition auch als einen String übergeben? Also in etwa so:
Niels
Da meine Anwendung auf vielen Systemen läuft und die Datenbankstruktur sich ab und zu erweitert, möchte ich ein Update-Script für die Datenbank erstellen. Dazu habe ich mir schon mal was gebaut:
Code:
delimiter // CREATE PROCEDURE addcol(IN ColName VarChar(50)) BEGIN IF NOT EXISTS( SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME=ColName AND TABLE_NAME='testtab' AND TABLE_SCHEMA='test' ) THEN ALTER TABLE test.testtab ADD COLUMN ColName bigint(20) unsigned NOT NULL default 1; END IF; END; // delimiter ; CALL addcol('Doedel5'); DROP PROCEDURE addcol;
Im Moment klemmt es aber leider schon: Das Select-Statement scheint den Parameter zu verwenden, jedoch wird im ALTER TABLE mir nun eine neue Spalte mit dem Namen ColName erstellt
Kann man als 2. Stringparameter die komplette Spaltendefinition auch als einen String übergeben? Also in etwa so:
Code:
CALL addcol('Doedel5', 'Doedel5 bigint(20) unsigned NOT NULL default 1');
Comment