Je recherche la syntaxe pour ajouter une colonne à une base de données MySQL avec une valeur par défaut de 0
237
Essaye ça:
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
À partir de la documentation que vous avez liée à:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] ...
alter_specification:
...
ADD [COLUMN] (col_name column_definition,...)
...
Pour trouver la syntaxe de column_definition
recherche un peu plus bas dans la page:
Les clauses column_definition utilisent la même syntaxe pour ADD et CHANGE que pour CREATE TABLE. Voir Section 12.1.17, «Syntaxe CREATE TABLE».
Et à partir de la page liée:
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]
Remarquez le mot DEFAULT ici.
TINYINT(1)
qui sont beaucoup plus efficaces que l'utilisationINT
, gardez cela à l'esprit lorsque vous utilisez cette «bonne» réponseComme ça?
la source
tablename
ADDnew_col_name
INT NOT NULL DEFAULT '1';Ajoutez simplement
default 0
à la fin de votreALTER TABLE <table> ADD COLUMN <column> <type>
relevéla source
utilisateurs de table (user_id int unsigned PK, username varchar (32))
la source
Cela fonctionnera pour le type ENUM comme valeur par défaut
la source
Vous pouvez essayer ça,
la source
la source
Si vous apprenez qu'il est utile d'utiliser une interface graphique comme SQLyog , apportez les modifications à l'aide du programme, puis consultez l'onglet Historique pour les instructions DDL qui ont apporté ces modifications.
la source
la source
Un autre mot clé utile est FIRST et AFTER si vous souhaitez l'ajouter à un endroit spécifique de votre tableau.
la source
bar
devrait être * après INT