it-swarm.com.de

Ändern der maximalen Länge einer Varchar-Spalte?

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)?

143
Michael A

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.

290
Martin Smith

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.

21
Mitch Wheat

ALTER TABLE table name Modify COLUMN column name varchar ("length");

3
anonymous

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;  
0
Rahul Gurung
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

0
Jedo

Mit Maria-DB und DB-Navigator in IntelliJ, MODIFY Column arbeitete ich statt Column ändern

0
Rahul Sharma