例1:
DROP PROCEDURE IF EXISTS '存储过程名称';
DELIMITER //
-- 功 能: XXXX
-- 作 者: XXX
-- 脚本类型: 手工整理
-- 生成时间: 2021-12-09 11:25:06
CREATE PROCEDURE '存储过程名称'() BEGIN
IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=database() AND TABLE_NAME='表名' AND COLUMN_NAME='字段名称') THEN
ALTER TABLE 表名 ADD COLUMN '字段名称' VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '字段描述';
END IF;
END//
DELIMITER ;
CALL '存储过程名称'();
例2:
DROP PROCEDURE IF EXISTS add_column;
DELIMITER //
CREATE PROCEDURE add_column() BEGIN
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=database() AND TABLE_NAME='table_name' AND COLUMN_NAME='name') THEN
ALTER TABLE `database_name`.`table_name` ADD name varchar(64) NOT NULL DEFAULT "";
END IF;
END//
DELIMITER ;
CALL add_column();
参考文章:
MySQL存储过程手册,及创建存储过程:循环为所有表添加字段_清如许.的博客-CSDN博客_sql为每一张表创建添加记录的存储过程有时候仅凭 sql 语句可能达不到想要的数据操作目的,有可能需要写一些方法体,通过循环判断等操作最终达到目的。那么在数据库里实现这种方法体就需要存储过程了存储过程简单来说,就是为以后的使用而保存的一条或多条 MySQL 语句的集合。可将其视为批处理文件。虽然他们的作用不仅限于批处理。本文将通过一个实例初步掌握存储过程,当然要深入学习了解的话还是要看教程文档了。https://blog.csdn.net/MacWx/article/details/126421435 MySQL存储过程_ReincarnationArm的博客-CSDN博客_mysql 存储过程目录一、存储过程1.1什么是存储过程1.2存储过程的优缺点二、创建存储过程2.1语法与特性:2.2声明语句分隔符2.3过程体的标识2.4存储过程参数设置三、存储过程中的变量四、MySQL变量五、设置用户执行存储过程的权限六、查看存储过程的状态七、查看存储过程的创建代码八、修改存储过程九、删除存储过程十、存储过程的控制语句十一、IF-ELSEIF-ELSE条件语句十二、CASE条件语句十三、WHILE循环语句十四、LOOP循环语句https://blog.csdn.net/ReincarnationArm/article/details/124572991
mysql - 如果mysql表中不存在该如何添加字段 - IT工具网https://www.coder.work/article/4503087