(一)添加字段
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。
本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:https://www.90175.com/wenku/txtlist_i216v.html