Изменение максимальной длины столбца varchar?

Я пытаюсь обновить длину столбца varchar от 255 символов до 500 без потери содержимого. Раньше я удалял и воссоздавал таблицы, но я никогда не подвергался действию alter, который, как мне кажется, мне нужно использовать для этого. Я нашел документацию здесь: ALTER TABLE (Transfact-SQL), однако я не могу сделать головы или хвосты.

У меня есть следующее до сих пор (по существу ничего, к сожалению):

alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3

Как мне подойти к этому? Есть ли более хорошая документация для этого утверждения там (я делал некоторые запросы для примера, но пришел пустой)?

Ответ 1

Вам нужно

ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL]

Но не забудьте указать NOT NULL явно при желании.

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL;

Если вы оставите его неуказанным ниже...

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);

Затем столбец будет по умолчанию разрешать null, даже если он был первоначально определен как NOT NULL. то есть опускание спецификации в ALTER TABLE ... ALTER COLUMN всегда обрабатывается как.

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;

Это поведение отличается от поведения, используемого для новых столбцов, созданных с помощью ALTER TABLE (или в CREATE TABLE времени). Там значение nulloid по умолчанию зависит от настроек ANSI_NULL_DFLT.

Ответ 2

Увеличение размера столбца с помощью ALTER не потеряет никаких данных:

alter table [progennet_dev].PROGEN.LE 
    alter column UR_VALUE_3 varchar(500) 

Как указывает @Martin, не забудьте явно указать NULL | NOT NULL

Ответ 3

ALTER TABLE table name изменить COLUMN column name varchar ("длина");

Ответ 4

Используя инструмент Maria-DB и DB-Navigator внутри IntelliJ, мне помогло MODIFY Column вместо Alter Column

Ответ 5

Я также сомневался, что у меня получилось

ALTER TABLE 'your_table' CHANGE 'property' 'property' 
VARCHAR(whatever_you_want) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;  

Ответ 6

ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR(40);

Поздно к вопросу - но я использую Oracle SQL Developer, и @anonymous ответ был самым близким, но продолжал получать синтаксические ошибки, пока я не отредактировал запрос к этому.

Надеюсь, это поможет кому-то