开发过程中经常需要提交可以重复执行的sql,当设计到需要增加字段时,可以参考如下办法:
1.如果是mysql 版本高于5.7.5
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
2.通用方法
写一个存储过程,然后用存储过程取执行删除字段,然后在脚本执行完后,可以根据自己的实际情况选择删除掉存储过程
--切换到指定的数据 根据自己的情况 use your_dbname; -- 删除存储过程 DROP PROCEDURE IF EXISTS sp_delete_column_if_exists; -- 创建存储过程 DELIMITER $$ CREATE PROCEDURE `sp_delete_column_if_exists`( IN `dbName` VARCHAR(255), IN `tableName` VARCHAR(255), IN `columnName` VARCHAR(255) ) begin SET @stmt = NULL; SELECT COUNT(*) INTO @stmt FROM information_schema.columns WHERE table_schema = dbName AND table_name = tableName AND column_name = columnName; SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = dbName AND table_name = tableName AND column_name = columnName; IF @stmt > 0 THEN SET @drop_column = CONCAT('ALTER TABLE `', dbName, '`.`', tableName, '` DROP COLUMN `', columnName, '`;'); PREPARE drop_column FROM @drop_column; EXECUTE drop_column; DEALLOCATE PREPARE drop_column; END IF; END$$ DELIMITER ; -- 调用存储过程 call sp_delete_column_if_exists('your_db', 'your_table' , 'your_column');
补充:mysql删除语句-delete
一、删除一条(一行)数据
delete from table where id='1'
注: 上述语句含义:删除表名为table中id=1的一条数据
二、删除整表数据
delete from table
注: 上述语句含义:删除表名为table中所有数据,但是不会删除表结构
ps:表结构简单说就是表字段。
小结:
这是本系列第二篇,通过我自己碎片化的学习,我知道在我进行搜索的时候,急需的是一个可用的结果,无需全面广泛的学习。所以本系列不展开扩展,用最少的图文帮助急需使用命令的你。当然,还是推荐能够系统的学习一下sql知识。
到此这篇关于MYSQL 删除一个字段前判断字段是否存在的办法的文章就介绍到这了,更多相关mysql判断字段是否存在内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!