Tôi đang tìm kiếm cú pháp để thêm một cột vào cơ sở dữ liệu MySQL với giá trị mặc định là 0
Tôi đang tìm kiếm cú pháp để thêm một cột vào cơ sở dữ liệu MySQL với giá trị mặc định là 0
Câu trả lời:
Thử cái này:
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
Từ tài liệu mà bạn liên kết đến:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] ...
alter_specification:
...
ADD [COLUMN] (col_name column_definition,...)
...
Để tìm cú pháp column_definition
tìm kiếm thêm một chút xuống trang:
Mệnh đề cột xác định sử dụng cùng một cú pháp cho THÊM và THAY ĐỔI như đối với CREATE TABLE. Xem Phần 12.1.17, Syntax BẢNG TẠO Cú pháp.
Và từ trang được liên kết:
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]
Lưu ý từ DEFAULT ở đó.
TINYINT(1)
hiệu quả hơn nhiều so với sử dụng INT
, hãy nhớ rằng khi sử dụng câu trả lời "đúng" này
Như thế này?
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
tablename
ADD new_col_name
INT KHÔNG NULL DEFAULT '1';
Bạn có thể thử điều này,
ALTER TABLE table_name ADD column_name INT DEFAULT 0;
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
Nếu bạn đang học, thật hữu ích khi sử dụng GUI như SQLyog , thực hiện các thay đổi bằng chương trình và sau đó xem tab Lịch sử cho các câu lệnh DDL đã thực hiện các thay đổi đó.
Thử cái này :)
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
Một từ khóa hữu ích khác là FIRST và SAU nếu bạn muốn thêm nó vào một vị trí cụ thể trong bảng của bạn.
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
bar
nên * sau INT