Ich versuche, die Länge einer varchar-Spalte von 255 Zeichen auf 500 zu aktualisieren, ohne den Inhalt zu verlieren. Ich habe schon zuvor Tabellen abgelegt und neu erstellt, aber ich war noch nie mit der Änderungsaussage konfrontiert worden. Ich habe die Dokumentation hier gefunden: ALTER TABLE (Transfact-SQL) Ich kann jedoch keine Köpfe oder Schwänze daraus machen.
Ich habe bisher folgendes (im Wesentlichen leider nichts):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
Wie gehe ich damit um? Gibt es eine bessere Dokumentation für diese Aussage da draußen (ich habe einige Suchen nach einer Beispielaussage gemacht, aber leer gelandet)?
Du brauchst
ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL]
Denken Sie jedoch daran, NOT NULL
explizit anzugeben, wenn Sie dies wünschen.
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL;
Wenn Sie es nicht wie folgt angeben ...
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);
In der Spalte werden dann standardmäßig Nullen zugelassen, auch wenn sie ursprünglich als NOT NULL
definiert wurde. d. h. das Weglassen der Spezifikation in einem ALTER TABLE ... ALTER COLUMN
wird immer als behandelt.
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;
Dieses Verhalten unterscheidet sich von dem, das für neue Spalten verwendet wird, die mit ALTER TABLE
(oder um CREATE TABLE
Zeit) erstellt wurden. Dort hängt die Standard-Nullfähigkeit von den Einstellungen von ANSI_NULL_DFLT
ab.
Wenn Sie die Spaltengröße mit ALTER
erhöhen, gehen keine Daten verloren:
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3 varchar(500)
Denken Sie, wie @Martin darauf hinweist, ausdrücklich an NULL | NOT NULL
.
ALTER TABLE table name
Modify COLUMN column name
varchar ("length");
Ich hatte auch Zweifel, was für mich funktioniert hat
ALTER TABLE `your_table` CHANGE `property` `property`
VARCHAR(whatever_you_want) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR(40);
Spät auf die Frage - aber ich verwende Oracle SQL Developer und @ anonymous antwortete am ehesten, erhielt aber weiterhin Syntaxfehler, bis ich die Abfrage dazu bearbeitete.
Hoffe das hilft jemandem
Mit Maria-DB und DB-Navigator in IntelliJ, MODIFY Column arbeitete ich statt Column ändern