在单个MySQL查询中使用ALTER向现有表添加新列和索引?

要将新列添加到现有表中,请使用ADD。这样,要添加新索引,请使用ADD INDEX()。让我们首先创建一个表-

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(100),
   -> PRIMARY KEY(Id)
   -> );

让我们检查表的描述-

mysql> desc DemoTable;

这将产生以下输出-

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| Id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

这是向现有表添加新列和索引的查询-

mysql> alter table DemoTable
   -> add ArrivalDate DATETIME DEFAULT NOW(),
   -> add index(ArrivalDate);
Records: 0 Duplicates: 0 Warnings: 0

让我们再次检查表的描述-

mysql> desc DemoTable;

这将产生以下输出-

+-------------+--------------+------+-----+-------------------+----------------+
| Field       | Type         | Null | Key | Default           | Extra          |
+-------------+--------------+------+-----+-------------------+----------------+
| Id          | int(11)      | NO   | PRI | NULL              | auto_increment |
| Name        | varchar(100) | YES  |     | NULL              |                |
| ArrivalDate | datetime     | YES  | MUL | CURRENT_TIMESTAMP |                |
+-------------+--------------+------+-----+-------------------+----------------+
3 rows in set (0.01 sec)