zoukankan      html  css  js  c++  java
  • mysql 判断表字段是否存在,然后修改

    -- ----------------------------
    -- 判断 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在则添加; 存在则修改字段类型
    DELIMITER ??
    DROP PROCEDURE IF EXISTS schema_change??
    CREATE PROCEDURE schema_change()
    BEGIN
    IF NOT EXISTS (SELECT * FROM information_schema.columns WHERE table_schema = DATABASE()  AND table_name = 'vrv_paw_rule' AND column_name = 'thresholdMin') THEN
        ALTER TABLE vrv_paw_rule ADD COLUMN thresholdMin  BIGINT;
    ELSE    
        ALTER TABLE vrv_paw_rule MODIFY COLUMN thresholdMin BIGINT ;
    END IF; 
    END??
    DELIMITER ;
    
    CALL schema_change();

    delimit命令:

    就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了,即改变输入结束符。
    默认情况下,delimiter是分号“;”。
    在命令行客户端中,如果有一行命令以分号结束,
    那么回车后,mysql将会执行该命令。
    但有时候,不希望MySQL这么做。因为可能输入较多的语句,且语句中包含有分号。
    默认情况下,不可能等到用户把这些语句全部输入完之后,再执行整段语句。
    因为mysql一遇到分号,它就要自动执行。
    这种情况下,就可以使用delimiter,把delimiter后面换成其它符号,如//或$$。
    此时,delimiter作用就是对整个小段语句做一个简单的封装。
    此命令多用在定义子程序,触发程序等mysql自己内嵌小程序中。

  • 相关阅读:
    hibernateValidator 升级
    java异常
    reids过期键三种删除策略
    hashmap源码探究
    http知识梳理1
    GregorianCalendar类的使用
    计算机网络笔记
    List的toArray方法
    实习周记一
    vue指令详解
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5055081.html
Copyright © 2011-2022 走看看