Saya mencari sintaks untuk menambahkan kolom ke database MySQL dengan nilai default 0
Saya mencari sintaks untuk menambahkan kolom ke database MySQL dengan nilai default 0
Jawaban:
Coba ini:
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
Dari dokumentasi yang Anda tautkan ke:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] ...
alter_specification:
...
ADD [COLUMN] (col_name column_definition,...)
...
Untuk menemukan sintaks untuk column_definition
pencarian sedikit lebih jauh ke bawah halaman:
klausa column_definition menggunakan sintaksis yang sama untuk ADD dan CHANGE seperti untuk CREATE TABLE. Lihat Bagian 12.1.17, “CREATE TABLE Syntax”.
Dan dari halaman tertaut:
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]
Perhatikan kata DEFAULT di sana.
TINYINT(1)
yang jauh lebih efisien daripada menggunakan INT
, ingatlah saat menggunakan jawaban "benar" ini
Seperti ini?
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
tablename
ADD new_col_name
INT NOT NULL DEFAULT '1';
Anda dapat mencoba ini,
ALTER TABLE table_name ADD column_name INT DEFAULT 0;
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
Jika Anda belajar bahwa menggunakan GUI seperti SQLyog sangat membantu , buat perubahan menggunakan program lalu lihat tab History untuk pernyataan DDL yang membuat perubahan itu.
Coba ini :)
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
Kata kunci lain yang bermanfaat adalah PERTAMA dan SETELAH jika Anda ingin menambahkannya di tempat tertentu di tabel Anda.
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
bar
harus * setelah INT