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 @   猪脚踏浪  阅读(12259)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示