在特定列之后添加新列并在MySQL中定义默认值?

您需要按照一些步骤在特定列之后添加新列并定义默认值。为了实现这一点,您需要使用ALTER命令。让我们首先创建一个表-

mysql> create table DemoTable
   (
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentFirstName varchar(20),
   StudentAge int,
   StudentCountryName varchar(100)
   );

让我们检查表的描述-

mysql> desc DemoTable;

这将产生以下输出-

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| StudentId          | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentFirstName   | varchar(20)  | YES  |     | NULL    |                |
| StudentAge         | int(11)      | YES  |     | NULL    |                |
| StudentCountryName | varchar(100) | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
4 rows in set (0.15 sec)

以下是在特定列之后添加新列并定义默认值的查询。让我们在列名称“ StudentFirstName”之后添加新列“ StudentLastName”。StudentLastName列的默认值为“ Doe”。

mysql> alter table DemoTable add StudentLastName varchar(20) NOT NULL after StudentFirstName;
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table DemoTable alter StudentLastName set default 'Doe';
Records: 0 Duplicates: 0 Warnings: 0

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

mysql> desc DemoTable;

这将产生以下输出-

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| StudentId          | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentFirstName   | varchar(20)  | YES  |     | NULL    |                |
| StudentLastName    | varchar(20)  | NO   |     | Doe     |                |
| StudentAge         | int(11)      | YES  |     | NULL    |                |
| StudentCountryName | varchar(100) | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)