Dodanie nowej kolumny SQL z wartością domyślną

237

Szukam składni, aby dodać kolumnę do bazy danych MySQL z domyślną wartością 0

Odniesienie

Matt Elhotiby
źródło

Odpowiedzi:

391

Spróbuj tego:

ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;

Z dokumentacji, do której prowadziłeś link:

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

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

Aby znaleźć składnię column_definitionwyszukiwania nieco dalej w dół strony:

Klauzule definicji_kolumny używają tej samej składni dla ADD i CHANGE jak dla CREATE TABLE. Patrz Rozdział 12.1.17, „TWORZENIE Składni TABELI”.

I z połączonej strony:

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]  

Zwróć uwagę na słowo DEFAULT.

Mark Byers
źródło
4
Szczególnie uderzyło mnie to, jak dobra jest ta odpowiedź, zarówno zwięzła, jak i dokładna, chciałbym móc ją jeszcze raz głosować
pseudonim
1
boolean i bool są synonimami, dla TINYINT(1)których jest o wiele wydajniejszy niż używanie INT, pamiętaj o tym, używając tej „poprawnej” odpowiedzi
Clint Eastwood
1
Jeśli chcesz dodać kolumnę logiczną z wartością domyślną False, możesz użyć: ALTER TABLE table1 ADD COLUMN foo boolean not null default 0;
1man
„ALTER TABLE tabela 1 DODAJ KOLUMNĘ foo INT DEFAULT 0;” - W tym słowie kluczowym „KOLUMNA” nie jest wymagane
Adithya Sai
36

Lubię to?

ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
Lekensteyn
źródło
jeśli wartością domyślną jest> 0, dodaj cudzysłowy: ALTER TABLE tablenameADD new_col_nameINT NOT NULL DEFAULT '1';
Cyril Jacquart
4

Po prostu dodaj default 0na końcu swojego ALTER TABLE <table> ADD COLUMN <column> <type>oświadczenia

Eton B.
źródło
3

użytkownicy tabeli (identyfikator_użytkownika int bez znaku PK, nazwa użytkownika varchar (32))

alter table users add column verified tinyint unsigned default 0
Jon Black
źródło
3

Działa to dla typu ENUM jako wartości domyślnej

ALTER TABLE engagete_st.holidays add column `STATUS` ENUM('A', 'D') default 'A' AFTER `H_TYPE`;
vpgodara
źródło
2

Możesz spróbować

ALTER TABLE table_name ADD column_name INT DEFAULT 0;
itzmebibin
źródło
1
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
Sandeep Kumar
źródło
1
Czy możesz to wyjaśnić dalej? Dlaczego musiałeś dodać nową odpowiedź na to pytanie?
Nico Haase,
0

Jeśli uczysz się, pomocne jest używanie GUI takiego jak SQLyog , dokonaj zmian za pomocą programu, a następnie zobacz kartę Historia dla instrukcji DDL, które dokonały tych zmian.

Max Toro
źródło
0

Spróbuj tego :)

ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
MAnoj Sarnaik
źródło
0

Kolejnym przydatnym słowem kluczowym jest PIERWSZE i PO, jeśli chcesz dodać je w określonym miejscu w tabeli.

ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
Roman Rabinovich
źródło
PO barpowinno być * po INT
vladiastudillo