-- 新增字段
DROP PROCEDURE IF EXISTS schema_change;
DELIMITER //
CREATE PROCEDURE schema_change()
BEGIN
DECLARE CurrentDatabase VARCHAR (100) ; SELECT DATABASE () INTO CurrentDatabase ;
IF NOT EXISTS (
SELECT
*
FROM
information_schema.COLUMNS
WHERE
table_schema = CurrentDatabase
AND table_name = '你的表名'
AND column_name = '你要新增的字段名称'
) THEN
-- 这句话可以在数据库可视化编辑器操作后从历史记录中获取,把后面的 after 某某字段删除
ALTER TABLE `你的表名`
ADD COLUMN `你要新增的字段名称` longtext NULL COMMENT '字段备注';
-- 这句话可以在数据库可视化编辑器操作后从历史记录中获取,把后面的 after 某某字段删除
-- 注意最后分号; 一定要记得写
END IF;
END//
DELIMITER ;
CALL schema_change();
-- 删除字段
DROP PROCEDURE IF EXISTS schema_change;
DELIMITER //
CREATE PROCEDURE schema_change ()
BEGIN
DECLARE CurrentDatabase VARCHAR (100) ; SELECT DATABASE () INTO CurrentDatabase ;
IF EXISTS (
SELECT
*
FROM
information_schema. COLUMNS
WHERE
table_schema = CurrentDatabase
AND table_name = '表名'
AND column_name = '字段名称'
) THEN
ALTER TABLE `表名` DROP COLUMN `字段名称`;
END
IF;
END//
DELIMITER ;
CALL schema_change ();
新增字段要判断 不存在 IF NOT EXISTS
删除字段和修改字段要判断存在 IF EXISTS
重要的是 THEN 后面的语句 在数据库可视化编辑器操作后从历史记录中获取,当然也可以自己写。修改也一样(不管是字段属性名称还是备注还是属性),判断存在后在THEN后操作。
别忘记最后的分号!
别忘记最后的分号!
别忘记最后的分号!