[sql] varchar 열의 최대 길이를 변경 하시겠습니까?

내용을 잃지 않고 varchar 열의 길이를 255 자에서 500으로 업데이트하려고합니다. 전에 테이블을 삭제하고 다시 만들었지 만이 작업을 수행하는 데 사용해야하는 alter 문에 노출 된 적이 없습니다. ALTER TABLE (Transfact-SQL) 문서를 찾았 지만 머리 나 꼬리를 만들 수는 없습니다.

지금까지 다음과 같은 내용이 있습니다 (불행히도 아무것도 없습니다).

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

어떻게 접근합니까? 이 진술에 대한 더 나은 문서가 있습니까? (예제를 검색했지만 비워 두었습니다)?



답변

당신은 필요

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시간에) 생성 된 새 열에 사용 된 동작과 다릅니다 . 기본 null 허용 여부는 ANSI_NULL_DFLT설정에 따라 다릅니다 .


답변

열 크기를 늘려도 ALTER데이터가 손실되지 않습니다.

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

@Martin이 지적했듯이 명시 적으로 지정해야합니다. NULL | NOT NULL


답변

당신은 사용할 수 있습니다 modify:

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


답변

IntelliJ에서 Maria-DB 및 DB-Navigator 도구를 사용하여 MODIFY ColumnAlter Column 대신 나를 위해 일했습니다.


답변

ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME VARCHAR(40);

질문에 늦었지만 Oracle SQL Developer를 사용 하고 있으며 @anonymous의 답변이 가장 가깝지만 쿼리를 편집 할 때까지 구문 오류가 계속 발생했습니다.

이것이 누군가를 돕기를 바랍니다.


답변

나는 또한 의심의 여지가 있었고, 나를 위해 일한 것은

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


답변

이것은 db2에서 나를 위해 일했습니다.

alter table "JOBS"  alter column "JOB_TITLE" set  data type varchar(30);