mysql 判断字段是否存在,不存在则添加

 

(一)添加字段

ALTER TABLE 表名 ADD 列名 列数据类型 DEFAULT 默认值;

 

(二)判断字段不存在则添加

使用IF NOT EXISTS命令判断是否添加字段

ALTER TABLE 表名 ADD COLUMN IF NOT EXISTS 列名 列数据类型 DEFAULT 默认值;

IF NOT EXISTS这个参数用法就是让查询时若该列不存在,则自动添加,若存在则什么也不做。因此,运用此语句能够达到自动添加列的目的。

 一个具体的例子如下所示:

ALTER TABLE user ADD COLUMN IF NOT EXISTS mobile VARCHAR(50) DEFAULT NULL;

如果user表不存在mobile字段则添加。

 

(三) 查询字段是否存在的一些方法

使用 SHOW COLUMNS 命令

SHOW COLUMNS 命令可以显示表的字段信息。可以通过该命令判断字段是否存在。如下所示:

SHOW COLUMNS FROM table_name LIKE 'column_name';

 其中,table_name 是需要查询的表名,column_name 是需要查询的字段名。如果表中存在该字段,SHOW COLUMNS 命令会显示该字段的信息。如果不存在,不会显示任何信息。

 

使用 INFORMATION_SCHEMA 数据库

 INFORMATION_SCHEMA 数据库包含了系统中的所有数据库、表、字段等信息。可以通过查询 INFORMATION_SCHEMA 数据库来判断字段是否存在。如下所示:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name' AND COLUMN_NAME = 'column_name';

 其中,database_name 是需要查询的数据库名,table_name 是需要查询的表名,column_name 是需要查询的字段名。如果表中存在该字段,查询结果会返回该字段名。如果不存在,查询结果为空。

 

使用 IF 函数

MySQL 中的 IF 函数可以用来判断某个条件是否成立。可以通过 IF 函数来判断字段是否存在。如下所示:

SELECT IF(COUNT(*) > 0, 'exist', 'not exist') AS result FROM information_schema.COLUMNS

WHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name' AND COLUMN_NAME = 'column_name';

其中,database_name 是需要查询的数据库名,table_name 是需要查询的表名,column_name 是需要查询的字段名。如果表中存在该字段,查询结果会返回 exist。如果不存在,查询结果会返回 not exist。

 

posted @ 2023-11-07 19:22  猪脚踏浪  阅读(15412)  评论(6)    收藏  举报