デフォルト値0のMySQLデータベースに列を追加する構文を探しています
デフォルト値0のMySQLデータベースに列を追加する構文を探しています
回答:
これを試して:
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
ページの下の方にある検索の構文を見つけるには:
column_definition句は、CREATE TABLEの場合と同じ構文をADDおよびCHANGEに使用します。セクション12.1.17「CREATE TABLE構文」を参照してください。
そしてリンクされたページから:
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;
別の有用なキーワードは、テーブルの特定の場所に追加する場合のFIRSTおよびAFTERです。
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
bar
は* INTの後でなければなりません