在我的表上创建一列,该列允许为空,但默认情况下设置为空(非空)?
您需要为此使用默认关键字。语法如下-
alter table yourTableName add yourColumnName yourDataType NULL Default '';
为了理解上述语法,让我们创建一个表。创建表的查询如下-
mysql> create table AllowNullDefaulNotNullDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> UserName varchar(20), -> PRIMARY KEY(Id) -> );
让我们添加一个新列,该列允许NULL值,但默认值设置为NOTNULL。查询如下-
mysql> alter table AllowNullDefaulNotNullDemo add UserAddress varchar(20) NULL Default''; Records: 0 Duplicates: 0 Warnings: 0
现在使用DESC命令检查表的描述。查询如下-
mysql> desc AllowNullDefaulNotNullDemo;
以下是输出-
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | UserName | varchar(20) | YES | | NULL | | | UserAddress | varchar(20) | YES | | | | +-------------+-------------+------+-----+---------+----------------+ 3 rows in set (0.17 sec)
现在,您可以使用insert命令在表中插入一些记录。在下面的查询中,UserAddress列允许NULL值,默认设置为NOTNULL。
让我们在此列中插入记录。查询如下-
mysql> insert into AllowNullDefaulNotNullDemo(UserAddress) values('US'); mysql> insert into AllowNullDefaulNotNullDemo(UserAddress) values(NULL); mysql> insert into AllowNullDefaulNotNullDemo() values();
检查新添加的列(即UserAddress)的特定记录。查询如下-
mysql> select UserAddress from AllowNullDefaulNotNullDemo;
以下是输出-
+-------------+ | UserAddress | +-------------+ | US | | NULL | | | +-------------+ 3 rows in set (0.00 sec)