열을 변경하고 기본값을 변경하려면 어떻게 해야 합니까?
열의 데이터 유형을 변경하고 새 기본값을 설정하는 동안 다음 오류가 발생했습니다.
ALTER TABLE foobar_data ALTER COLUMN col VARCHAR(255) NOT NULL SET DEFAULT '{}';
ERROR 1064(42000):SQL 구문에 오류가 있습니다. MySQL Server 버전에 해당하는 설명서에서 1행의 'VARCHAR(255) NOT NULL SET DEFAULT '{}' 근처에서 사용할 올바른 구문을 확인하십시오.
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 '{}';
디폴트 설정만 하고 싶다면 ALTER ..SET 구문을 사용할 수 있습니다.다른 건 다 넣지 마세요나머지 열 정의를 삽입하려면 승인된 답변에 따라 MODIFY 또는 CHANGE 구문을 사용합니다.
열 기본값을 설정하기 위한 ALTER 구문(여기 왔을 때 찾고 있던 것이었으므로):
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'literal';
이 경우 '리터럴'은 숫자일 수도 있습니다(예:...SET DEFAULT 0
) 에서는 사용해 본 적이 없습니다....SET DEFAULT CURRENT_TIMESTAMP
하지만 왜 안 되지?
이미 작성된 컬럼에 기본값을 추가할 경우 다음 절차를 수행합니다.
ALTER TABLE Persons
ALTER credit SET DEFAULT 0.0;
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;
위의 내용이 적합하지 않은 경우(즉, 새로운 SQL 또는 Azure를 사용하는 경우) 다음을 시도해 보십시오.
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;
[ Accepted Answer ]는 정상적으로 동작합니다.
Invalid use of NULL value 오류가 발생한 경우 NULL 값에서 모든 NULL 값을 해당 컬럼의 기본값으로 업데이트한 후 변경을 시도합니다.
UPDATE foobar_data SET col = '{}' WHERE col IS NULL;
ALTER TABLE foobar_data MODIFY COLUMN col VARCHAR(255) NOT NULL DEFAULT '{}';
이거 드셔보세요
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 '';
다음 접근방식을 사용합니다.
테이블 foobar_data CHANGE 컬럼 col VARCHAR(255)을 변경합니다.기본값은 NULL로 설정되어 있지 않습니다.
언급URL : https://stackoverflow.com/questions/11312433/how-to-alter-a-column-and-change-the-default-value
'programing' 카테고리의 다른 글
PHP에서 지정된 키의 값에 따라 연관 배열 배열을 정렬하려면 어떻게 해야 합니까? (0) | 2022.09.18 |
---|---|
Python에서 대용량 파일을 읽기 위한 느린 방법? (0) | 2022.09.18 |
복합 인덱스 및 영구 열을 사용한 MySQL 쿼리 최적화 (0) | 2022.09.18 |
Java에서 루프를 위한 확장의 마지막 반복 (0) | 2022.09.18 |
Java에서 Base64 데이터 디코딩 (0) | 2022.09.13 |