Ich suche nach der Syntax zum Hinzufügen einer Spalte zu einer MySQL-Datenbank mit dem Standardwert 0
Ich suche nach der Syntax zum Hinzufügen einer Spalte zu einer MySQL-Datenbank mit dem Standardwert 0
Antworten:
Versuche dies:
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
Aus der Dokumentation, auf die Sie verlinkt haben:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] ...
alter_specification:
...
ADD [COLUMN] (col_name column_definition,...)
...
So finden Sie die Syntax für die column_definition
Suche etwas weiter unten auf der Seite:
column_definition-Klauseln verwenden für ADD und CHANGE dieselbe Syntax wie für CREATE TABLE. Siehe Abschnitt 12.1.17, „CREATE TABLE-Syntax“.
Und von der verlinkten Seite:
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]
Beachten Sie dort das Wort DEFAULT.
TINYINT(1)
die weitaus effizienter sind als die Verwendung INT
. Denken Sie daran, wenn Sie diese "richtige" Antwort verwenden
So was?
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
tablename
ADD new_col_name
INT NOT NULL DEFAULT '1';
Sie können dies versuchen,
ALTER TABLE table_name ADD column_name INT DEFAULT 0;
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
Wenn Sie lernen, dass es hilfreich ist, eine GUI wie SQLyog zu verwenden , nehmen Sie die Änderungen mit dem Programm vor und sehen Sie dann auf der Registerkarte Verlauf die DDL-Anweisungen, die diese Änderungen vorgenommen haben.
Versuche dies :)
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
Ein weiteres nützliches Schlüsselwort ist FIRST und AFTER, wenn Sie es an einer bestimmten Stelle in Ihrer Tabelle hinzufügen möchten.
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
bar
sollte * nach INT sein