-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE add_column(
IN db_name VARCHAR(255),
IN table_name VARCHAR(255),
IN column_name VARCHAR(255),
IN column_definition VARCHAR(255),
IN column_comment VARCHAR(255)
)
BEGIN
DECLARE column_exists INT;
-- 检查字段是否存在
SELECT COUNT(*) INTO column_exists
FROM information_schema.columns
WHERE table_schema = db_name
AND table_name = table_name
AND column_name = column_name;
-- 如果字段不存在,则添加字段
IF column_exists = 0 THEN
SET @sql = CONCAT('ALTER TABLE ', db_name, '.', table_name,'ADD COLUMN ', column_name,'', column_definition, ' COMMENT \'', column_comment, '\'');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END $$
DELIMITER ;
-- 调用存储过程
CALL add_column('your_database', 'your_table', 'new_column', 'INT', '这是新字段的备注信息');
在 MySQL 中,通过存储过程结合条件判断来实现添加表字段时,如果字段已存在则不再重复添加
于 2025-02-10 18:59:03 首次发布