检查表的字段是否在SQL中设置了NOT NULL属性?

要检查表的字段是否具有NOT NULL属性,可以使用两种语法中的任何一种。第一种语法如下-

desc yourTableName;

以下是第二种语法-

select column_name,
   is_nullable
   from information_schema.columns
   where table_schema = ‘yourDatabaseName’
   and table_name = 'yourTableName’;

我们首先来看一个示例并创建一个表-

mysql> create table DemoTable
(
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentName varchar(40),
   StudentAge int NOT NULL,
   IsActiveStudent ENUM('ACTIVE",INACTIVE') NOT NULL,
   StudentCountryName varchar(40)
);

第一种语法如下,检查表的字段是否设置了NOT NULL属性-

mysql> desc DemoTable;

这将产生以下输出-

+--------------------+--------------------------+------+-----+---------+----------------+
| Field              | Type                     | Null | Key | Default |          Extra |
+--------------------+--------------------------+------+-----+---------+----------------+
| StudentId          | int(11)                  | NO   | PRI | NULL    | auto_increment |
| StudentName        | varchar(40)              | YES  |     | NULL    |                |
| StudentAge         | int(11)                  | NO   |     | NULL    |                |
| IsActiveStudent    | enum('ACTIVE",INACTIVE') | NO   |     | NULL    |                |
| StudentCountryName | varchar(40)              | YES  |     | NULL    |                |
+--------------------+--------------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

第二种语法如下检查表的字段是否设置了NOT NULL属性-

mysql> select column_name,
   is_nullable
   from information_schema.columns
   where table_schema = 'web'
   and table_name = 'DemoTable';

这将产生以下输出-

+--------------------+-------------+
| COLUMN_NAME        | IS_NULLABLE |
+--------------------+-------------+
| StudentId          | NO          |
| StudentName        | YES         |
| StudentAge         | NO          |
| IsActiveStudent    | NO          |
| StudentCountryName | YES         |
+--------------------+-------------+
5 rows in set (0.00 sec)