[SQL] 어떻게 열을 변경하고 기본값을 변경하려면?
SQL어떻게 열을 변경하고 기본값을 변경하려면?
나는 열의 데이터 형식을 변경하려고하고 새 기본 값을 설정하는 동안 다음 오류가 발생했습니다 :
ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}';
해결법
-
==============================
1.
ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';
(juergen_d에 감사) 같은 않는 두 번째 가능성 :
ALTER TABLE foobar_data CHANGE COLUMN col col VARCHAR(255) NOT NULL DEFAULT '{}';
-
==============================
2.같은 그냥 기본값을 설정하려면 확신 당신은 ALTER ... SET 구문을 사용할 수 있습니다, 후속. 그냥 거기에 다른 모든 물건을 넣지 마십시오. 당신은에서 열 정의의 나머지 부분을 넣어 허용 대답에 따라, 수정하거나 변경 구문을 사용하는 거라면.
같은 그냥 기본값을 설정하려면 확신 당신은 ALTER ... SET 구문을 사용할 수 있습니다, 후속. 그냥 거기에 다른 모든 물건을 넣지 마십시오. 당신은에서 열 정의의 나머지 부분을 넣어 허용 대답에 따라, 수정하거나 변경 구문을 사용하는 거라면.
어쨌든, (즉, 내가 여기 왔을 때 찾던 이후) 열 기본을 설정하기위한 ALTER 구문 :
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'literal';
있는 '문자'는 숫자가 될 수있다 (예를 들어 ... SET의 DEFAULT 0). 나는 어로 ... SET DEFAULT CURRENT_TIMESTAMP하지만 왜 그것을 시도하지 않은?
-
==============================
3.이미 생성 된 컬럼에 대한 기본 값을 추가하려면, 이 나를 위해 작동합니다 :
이미 생성 된 컬럼에 대한 기본 값을 추가하려면, 이 나를 위해 작동합니다 :
ALTER TABLE Persons ALTER credit SET DEFAULT 0.0';
-
==============================
4.DEFAULT의 CURRENT_TIMESTAMP 경우 :
DEFAULT의 CURRENT_TIMESTAMP 경우 :
ALTER TABLE tablename CHANGE COLUMN columnname1 columname1 DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE COLUMN columnname2 columname2 DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
이중 럼 이름 선언을 유의하시기 바랍니다
DEFAULT의 CURRENT_TIMESTAMP 제거 :
ALTER TABLE tablename ALTER COLUMN columnname1 DROP DEFAULT, ALTER COLUMN columnname2 DROPT DEFAULT;
-
==============================
5.허용 대답은 잘 작동합니다.
허용 대답은 잘 작동합니다.
NULL 값에 NULL 값 오류의 잘못된 사용의 경우, 해당 열에 기본값으로 모든 널 (null) 값을 업데이트 한 후 ALTER을하려고합니다.
UPDATE foobar_data SET col = '{}' WHERE col IS NULL; ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';
-
==============================
6.경우에는 위는 다음을 시도 당신을 위해하지 작업 (: 당신은 새로운 SQL 또는 푸른로 즉 작업) 않습니다 :
경우에는 위는 다음을 시도 당신을 위해하지 작업 (: 당신은 새로운 SQL 또는 푸른로 즉 작업) 않습니다 :
1) 열 제한 (있는 경우)를 기존 드롭 :
ALTER TABLE [table_name] DROP CONSTRAINT DF_my_constraint
2) 새로 만듭니다 :
ALTER TABLE [table_name] ADD CONSTRAINT DF_my_constraint DEFAULT getdate() FOR column_name;
-
==============================
7.이 시도
이 시도
ALTER TABLE `table_name` CHANGE `column_name` `column_name` data_type NULL DEFAULT '';
이 같은
ALTER TABLE `drivers_meta` CHANGE `driving_license` `driving_license` VARCHAR(30) NULL DEFAULT '';
from https://stackoverflow.com/questions/11312433/how-to-alter-a-column-and-change-the-default-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 다른 데이터베이스에 하나의 데이터베이스에서 데이터를 전송 (0) | 2020.04.29 |
---|---|
[SQL] MySQL은 : 가져 오기 가장 최근의 기록 (0) | 2020.04.29 |
[SQL] SQL에서 시간없이 날짜를 선택하는 방법 (0) | 2020.04.29 |
[SQL] 조건에 따라 다른 테이블의 열과 업데이트 열 값 [중복] (0) | 2020.04.29 |
[SQL] 어떻게 2008 SQL 서버의 테이블 별명 UPDATE SQL을 작성하는? (0) | 2020.04.29 |