기본값으로 새 SQL 열 추가


답변:


391

이 시도:

ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;

링크 한 문서에서 :

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
   alter_specification [, alter_specification] ...

alter_specification:
    ...
    ADD [COLUMN] (col_name column_definition,...)
    ...

column_definition페이지에서 조금 더 검색하기 위한 구문을 찾으려면 다음을 수행하십시오.

column_definition 절은 ADD 및 CHANGE에 대해 CREATE TABLE과 동일한 구문을 사용합니다. 12.1.17 절.“CREATE TABLE 구문”을 참조하십시오 .

그리고 링크 된 페이지에서 :

column_definition:  
   data_type [NOT NULL | NULL] [DEFAULT default_value]
   [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]  
   [COMMENT 'string']  
   [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]  
   [STORAGE {DISK|MEMORY|DEFAULT}]  
   [reference_definition]  

DEFAULT라는 단어를 주목하십시오.


4
나는 간결하고 철저한이 답변이 얼마나 좋은지에 대해 특히 충격을 받았다. 나는 다시 그것을 표명 할 수 있기를 바란다
가명

1
부울과 부울은 동의어를 사용 TINYINT(1)하는 것보다 동의어입니다. INT이 "올바른"답변을 사용할 때 명심하십시오
Clint Eastwood

1
기본값이 False 인 부울 열을 추가해야하는 경우 다음을 사용할 수 있습니다. ALTER TABLE table1 ADD COLUMN foo boolean not null default 0;
1man

"ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;" -이 'COLUMN'키워드는 필요하지 않습니다
Adithya Sai

36

이처럼?

ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;

기본값이> 0이면 따옴표를 추가하십시오. ALTER TABLE tablenameADD new_col_nameINT NOT NULL DEFAULT '1';
시릴 자카드

4

명세서 default 0끝에 추가하면 됩니다 ALTER TABLE <table> ADD COLUMN <column> <type>.


3

테이블 사용자 (user_id int unsigned PK, username varchar (32))

alter table users add column verified tinyint unsigned default 0

3

이것은 ENUM 타입에서 기본값으로 작동합니다

ALTER TABLE engagete_st.holidays add column `STATUS` ENUM('A', 'D') default 'A' AFTER `H_TYPE`;

2

당신은 이것을 시도 할 수 있습니다

ALTER TABLE table_name ADD column_name INT DEFAULT 0;

1
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;

1
더 자세히 설명해 주시겠습니까? 이 질문에 새로운 답을 추가해야하는 이유는 무엇입니까?
Nico Haase

0

SQLyog 와 같은 GUI를 사용하는 것이 도움이되는 경우 프로그램을 사용하여 변경 한 후 해당 변경을 수행 한 DDL 문에 대한 히스토리 탭을 참조하십시오.



0

다른 유용한 키워드는 테이블의 특정 지점에 키워드를 추가하려는 경우 첫 번째 및 이후입니다.

ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;

AFTER bar* INT 후해야
vladiastudillo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.