it-swarm.com.de

Wie ändere ich eine MySQL-Spalte, um NULL zuzulassen?

MySQL 5.0.45

Was ist die Syntax, um eine Tabelle so zu ändern, dass eine Spalte null ist, oder was ist daran falsch?

ALTER mytable MODIFY mycolumn varchar(255) null;

Ich habe das Handbuch so interpretiert, dass es nur das oben Genannte ausführt und die Spalte neu erstellt, wobei diesmal null zulässig ist. Der Server teilt mir mit, dass ich syntaktische Fehler habe. Ich sehe sie einfach nicht.

363
zmf

Sie möchten Folgendes:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

Spalten können standardmäßig auf Null gesetzt werden. Solange die Spalte nicht als UNIQUE oder NOT NULL Deklariert ist, sollte es keine Probleme geben.

546
Daniel Spiewak

Ihr Syntaxfehler wird durch eine fehlende "Tabelle" in der Abfrage verursacht

ALTER TABLE mytable MODIFY mycolumn varchar(255) null;
205
ConroyP

Meine Lösung:

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL

Zum Beispiel:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;
26
Krishnrohit

Unter bestimmten Umständen (wenn Sie "ERROR 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; ...") müssen Sie tun

ALTER TABLE mytable MODIFY mytable.mycolumn varchar(255);

Meine Lösung ist dieselbe wie bei @Krishnrohit:

ALTER TABLE `table` CHANGE `column_current_name` `new_column_name` DATETIME NULL;

Ich hatte tatsächlich die Spalte als NOT NULL aber mit der obigen Abfrage wurde es in NULL geändert.

P.S. Ich weiß, dass dies ein alter Thread ist, aber niemand scheint anzuerkennen, dass CHANGE ebenfalls korrekt ist.

2
Hmerman6006

Wenn die Spalte ein Double ist

      ALTER TABLE `tablename` CHANGE `column_name` `column_name` DOUBLE NULL; 
0
levis