mysql drop column problem
Rudi Schnabelfuchs
- datenbank
0 Tobias Kloth0 Rudi
0 Patrick Kujawa
Hallo Teamone!
Ich habe folgendes Problem ich möchte bestimmte Felder in meiner Datenbank löschen aber irgendwas ist an meiner Syntax falsch was weiß ich auch nicht?
ALTER TABLE kunde DROP COLUMN KD_B, KD_Z WHERE KD_Baum = '$_REQUEST[baum]'
Ich will KD_B und KD_Z löschen geht aber nicht es kommt ein Fehler das die Syntax falsch ist
Hallo Rudi,
ALTER TABLE kunde DROP COLUMN KD_B, KD_Z WHERE KD_Baum = '$_REQUEST[baum]'
laut http://www.mysql.de/doc/de/ALTER_TABLE.html gibt es bei ALTER TABLE <tabelle> DROP [COLUMN] <spalten> keinen WHERE-Teil. Für was soll das WHERE KD_Baum = '<wert>' denn sein?
Grüße aus Nürnberg
Tobias
Hallo Rudi,
ALTER TABLE kunde DROP COLUMN KD_B, KD_Z WHERE KD_Baum = '$_REQUEST[baum]'
laut http://www.mysql.de/doc/de/ALTER_TABLE.html gibt es bei ALTER TABLE <tabelle> DROP [COLUMN] <spalten> keinen WHERE-Teil. Für was soll das WHERE KD_Baum = '<wert>' denn sein?
Die WHERE Klausel ist dafür da, dass nur das eine Feld gelöscht wird welches mit meiner Bedingung übereinstimmt.
Ich dachte mir dann packe ich alles in eine Abfrage rein um effizent zu sein als wie wenn ich alles 3 mal mit php Abfragen durchführe.
Also gibt es da keine andere Möglichkeit so ich das jetzte verstanden habe?
Gruß Rudi
Hallo Rudi,
ALTER TABLE kunde DROP COLUMN KD_B, KD_Z WHERE KD_Baum = '$_REQUEST[baum]'
laut http://www.mysql.de/doc/de/ALTER_TABLE.html gibt es bei ALTER TABLE <tabelle> DROP [COLUMN] <spalten> keinen WHERE-Teil. Für was soll das WHERE KD_Baum = '<wert>' denn sein?
Die WHERE Klausel ist dafür da, dass nur das eine Feld gelöscht wird welches mit meiner Bedingung übereinstimmt.
Was willst du eigentlich machen? Den Query nach willst du die beiden Spalten KD_B und KD_Z löschen. Wenn ich deinen Satz richtig verstehe, willst du aber eigentlich nur von einem Teil der Datensätze eine Spalte löschen, oder? Das geht aber nicht (du kannst ja auch schlecht aus einer Tabelle einfach ein <td> rausnehmen) - du könntest höchstens die Werte mit einem geeigneten UPDATE-Query auf NULL oder '' (Leerstring) setzen.
Grüße aus Nürnberg
Tobias
Hallo Tobias
ja sonst habe ich es auch immer mit einem update mit einem leer String voll geschrieben ich dachte nur es gäbe noch was besseres.
Gruß Rudi
Hallo,
ich bin es nochmals...
Also ich habe ein int Feld und möchte das mit update leer schreiben entweder ich schreibe dort eine 0 rein und wie setze ich das Feld auf NULL den ein leeres String kann ich hier doch gar nicht reinschreiben
UPDATE kunde SET KD_Baum = 0 WHERE KD_z = '$_REQUEST[zunge]'
Wie schreibe ich in KD_Baum ein NULL Wert rein?
Gruß Rudi
UPDATE kunde SET KD_Baum = 0 WHERE KD_z = '$_REQUEST[zunge]'
Wie schreibe ich in KD_Baum ein NULL Wert rein?
Hi,
wenn Du nicht in der Doku nachlesen möchtest, was NULL überhaupt ist und wie man damit umgeht, warum probierst Du es nicht einfach aus:
[...] SET KD_Baum = NULL [...]
?
hth Robert
Moin moin,
Eine WHERE-Klausel ist im ALTER TABLE nicht zulässig.
http://dev.mysql.com/doc/mysql/en/ALTER_TABLE.html
Deine SQL-Statement müsste also ALTER TABLE kunde DROP COLUMN KD_B, KD_Z lauten.
Gruß
Patrick