Я шукаю синтаксис, щоб додати стовпчик до бази даних MySQL зі значенням за замовчуванням 0
Я шукаю синтаксис, щоб додати стовпчик до бази даних MySQL зі значенням за замовчуванням 0
Відповіді:
Спробуйте це:
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
пошуку трохи далі на сторінці:
У колонці_визначення_використання використовується той самий синтаксис для ДОБАВЛЕННЯ та ЗМІНИ, що і для СТВОРИТИ ТАБЛИЦЮ. Див. Розділ 12.1.17, «СТВОРИТИ Синтаксис ТАБЛИЦІ».
І з пов’язаної сторінки:
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 там.
TINYINT(1)
яких набагато ефективніше, ніж використання INT
, майте це на увазі, використовуючи цю "правильну" відповідь
Подобається це?
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
tablename
ADD new_col_name
INT NOT NULL DEFAULT '1';
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
Спробуйте це :)
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
Ще одне корисне ключове слово - ПЕРШИЙ та ПІСЛЯ, якщо ви хочете додати його в певному місці таблиці.
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
bar
має бути * після INT