Varsayılan değeri olan yeni bir SQL sütunu ekleme


237

0 varsayılan değeri olan bir MySQL veritabanına sütun eklemek için sözdizimi arıyorum

Referans

Yanıtlar:


391

Bunu dene:

ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;

Bağlandığınız belgelerden:

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

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

column_definitionArama sözdizimini sayfadan biraz daha fazla bulmak için:

column_definition deyimleri, ADD ve CHANGE için CREATE TABLE ile aynı sözdizimini kullanır. Bkz. Bölüm 12.1.17, “TABLO Sözdizimi OLUŞTUR”.

Bağlantı verilen sayfadan:

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]  

Orada VARSAYILAN kelimesine dikkat edin.


4
Özellikle bu cevabın ne kadar iyi olduğuna, hem özlü hem de kapsamlı, tekrar tekrar değerlendirebilmeyi isterdim
Pseudonym

1
boolean ve bool, TINYINT(1)kullanmaktan çok daha verimli olan eş anlamlılardır INT, bu "doğru" yanıtı kullanırken aklınızda bulundurun
Clint Eastwood

1
Varsayılan değeri False olan bir boole sütunu eklemeniz gerekirse, şunu kullanabilirsiniz: ALTER TABLE tablo1 COLUMN EKLE foo boolean null varsayılan 0;
1man

"ALTER TABLE tablo1 INT VARSAYILAN 0 KOLON EKLE;" - Bu 'COLUMN' anahtar kelimesinde gerekli değildir
Adithya Sai

36

Bunun gibi?

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

varsayılan> 0 ise, tırnak ekleyin: ALTER TABLE tablenameADD new_col_nameINT NOT NULL DEFAULT '1';
Cyril Jacquart

4

Basitçe eklemek default 0için sonunda ALTER TABLE <table> ADD COLUMN <column> <type>açıklamada


3

tablo kullanıcıları (user_id int unsigned PK, kullanıcı adı varchar (32))

alter table users add column verified tinyint unsigned default 0

3

Bu, ENUM tipi için varsayılan değer olarak çalışır

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

2

Bunu deneyebilirsin,

ALTER TABLE table_name ADD column_name INT DEFAULT 0;

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

1
Bunu daha fazla açıklayabilir misiniz? Bu soruya neden yeni bir cevap eklemeniz gerekiyor?
Nico Haase

0

SQLyog gibi bir GUI kullanmanın yararlı olduğunu öğreniyorsanız , programı kullanarak değişiklikleri yapın ve ardından bu değişiklikleri yapan DDL ifadeleri için Geçmiş sekmesine bakın.



0

Başka bir yararlı anahtar kelime, tablonuzdaki belirli bir noktaya eklemek istiyorsanız İLK ve SONRA'dır.

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

SONRASI bar* INT sonrası * olmalıdır
vladiastudillo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.