开发者

MYSQL 删除一个字段前判断字段是否存在的办法

开发过程中经常需要提交可以重复执行的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_deandroidlete_column_if_exists`(
    IN `dbName` VARCHAR(255),
    IN `tableName` VARCHAR(255),
    IN `co编程客栈lumnName` VARCHAR(255)
)
begin
    SET @stmt = NULL;
    SELECT
        COUNT(*) INTO @stmt
    FROM
        information_schema.columns
    WHERE
        table_schema = dbName
        AND table_name = tableName
        AND column_naphpme = 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='1javascript'

注: 上述语句含义:删除表名为table中id=1的一条数据

 二、删除整表数据

delete from table 

 注: 上述语句含义:删除表名为table中所有数据,但是不会删除表结构

ps:表结构简单说就是表字段。

小结:

这是本系列第二篇,通过我自己碎片化的学习,我知道在我进行搜索的时候,急需的是一个可用的结果,无需全面广泛的学习。所以本系列不展开扩展,用最少的图文帮助急需使用命令的你。当然,还是推荐能够系统的学习一下sql知识。

到此这篇关于MYSQL 删除一个字段前判断字段是否存在的办法的文章就介绍到这了,更多相关mysql判断字段是否存在内容请搜索编程客栈(www.devze.com)以前php的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新数据库

数据库排行榜