Medien & Phantastik > Multimedia - Software & Betriebsysteme
[MySQL] ALTER TABLE irgendwie mit IF NOT EXISTS?
Karl Lauer:
Jo, hier die lang Fassung der Überschrift:
ich hab da das Problem das ich eine colum anlegen möchte wenn sie nicht schon existiert
also eben einen befehl
ALTER TABLE Tabelle ADD (column SMALLINT( 2 ) UNSIGNED NOT NULL DEFAULT '0') der nur ausgeführt wird wenn die column nicht existent ist.
Hab mich jetzt quer durch meine Lehrbücher gewälzt und mit der Online Dokumentation gekämpft, aber es nicht lösen können.
Help anybody?
Hr. Rabe:
Geht in den meisten Datenbanke mit gaaaaaaanz fiesen Tricks und ist daher auch sehr datenbankspeziefisch.
Und auch ich sage dir, was dir wohl jeder sagen wird: Wer zu Laufzeit seines Programmes die Tabellenstrucktur der Datenbank anfassen muß hat schlecht designed -> zurück ans Reisbreit ;)
Warum willst du das den tun?
killedcat:
Sorry! Beats me!
Haukrinn:
Laut meinem MySQL-Buch geht das nicht. Ansonsten hat der Rabe schon völlig recht, Datenbanken sollten erst eine vollständig designte Struktur besitzen, die nicht mehr verändert wird, bevor mit ihnen arbeitet. Naja, fast recht, denn
--- Zitat von: Herr Rabe am 20.03.2008 | 20:18 ---zurück ans Reisbreit
--- Ende Zitat ---
soll wohl eher
zurück zum Breitreis (was ja bekanntlich eine nord-thailändische Untergattung des Sumpfreis ist)
heißen. Und recht hat er, stärke Dich erst einmal ein wenig, und dann überleg' noch mal genau, was Du da überhaupt tun willst.
der.hobbit:
Dynamische Änderungen von Tabellen sind wohl fies - aber da sie dynamisch sind wirst du das ganze wahrscheinlich auch programmatisch machen, oder?
Dann hole dir erst mal mit DESCRIBE die Tabellendaten, und kontrolliere dann in deiner Programmiersprache, ob die Spalte existiert. Das ist zwar einerseits eine Anfrage mehr, aber andererseits eine SQL-seitig sehr billige. Da du hoffentlich nicht zu oft diese dynamische Anpassung vornimmst, sollte die Performance hier nur bedingt eine Rolle spielen.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln