1.如此执行语句不行,需要在 delimiter

  1. IF not EXISTS (
  2. SELECT
  3. *
  4. FROM
  5. information_schema. COLUMNS
  6. WHERE
  7. table_schema = 'thc_rcm'
  8. AND table_name = 'Cs_AccountBillDetail'
  9. AND column_name = 'shopSetItemId'
  10. ) THEN
  11. ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`
  12. ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT '套餐的订单明细ID' AFTER `itemId`;
  13. END IF;

2.这样写也不行,因为这样的语句必须在存储过程里执行

  1. DELIMITER //
  2. IF not EXISTS (
  3. SELECT
  4. *
  5. FROM
  6. information_schema. COLUMNS
  7. WHERE
  8. table_schema = 'thc_rcm'
  9. AND table_name = 'Cs_AccountBillDetail'
  10. AND column_name = 'shopSetItemId'
  11. ) THEN
  12. ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`
  13. ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT '套餐的订单明细ID' AFTER `itemId`;
  14. END IF;
  15. END//
  16. DELIMITER ;

3.OK

  1. DELIMITER //
  2. CREATE PROCEDURE thc_rcm_change ()
  3. BEGIN
  4. IF not EXISTS (
  5. SELECT
  6. *
  7. FROM
  8. information_schema. COLUMNS
  9. WHERE
  10. table_schema = 'thc_rcm'
  11. AND table_name = 'Cs_AccountBillDetail'
  12. AND column_name = 'shopSetItemId'
  13. ) THEN
  14. ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`
  15. ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT '套餐的订单明细ID' AFTER `itemId`;
  16. END IF;
  17. END//
  18. DELIMITER ;
  19. CALL thc_rcm_change ();
  20. DROP PROCEDURE
  21. IF EXISTS thc_rcm_change;

4.将添加字段变为删除字段则执行不通过,待解???????????

  1. DELIMITER //
  2. CREATE PROCEDURE thc_rcm_change ()
  3. BEGIN
  4. IF not EXISTS (
  5. SELECT
  6. *
  7. FROM
  8. information_schema. COLUMNS
  9. WHERE
  10. table_schema = 'thc_rcm'
  11. AND table_name = 'Cs_AccountBillDetail'
  12. AND column_name = 'shopSetItemId'
  13. ) THEN
  14. ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`
  15. drop COLUMN shopSetItemId;
  16. END IF;
  17. END//
  18. DELIMITER ;
  19. CALL thc_rcm_change ();
  20. DROP PROCEDURE
  21. IF EXISTS thc_rcm_change;

错误提示

Query execution failed

原因:
SQL 错误 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') THEN
ALTER TABLE `thc_rcm`.`Cs_AccountBillDetail` drop column setMealDetai' at line 1

Query execution failed


注:

windows navicat 中可以执行成功

Mac DBeaver中执行不成功

delimiter 与 存储过程的更多相关文章

  1. MySQL主从环境下存储过程,函数,触发器,事件的复制情况

    下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affe ...

  2. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  3. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

  4. MySQL 存储过程和函数

    概述 一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它.因为mysql中存储过程和函数的语法非常接近所以就放在一起,主要区别就是函数 ...

  5. MySQL存储过程及触发器

    一.存储过程 存储过程的基本格式如下: -- 声明结束符 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 CREATE PROCEDURE pro_test() --存储过程名 ...

  6. mysql创建定时执行存储过程任务

    sql语法很多,是一门完整语言.这里仅仅实现一个功能,不做深入研究. 目标:定时更新表或者清空表. 案例:曾经做过定时清空位置信息表的任务.(然而,当时并未考虑服务器挂掉后的情况) 本次测试:每5s更 ...

  7. MySql 存储过程、触发器和权限问题

    存储过程 1.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if  while) 1.2 存储过程特点 1)执行效率非常快!存储过程 ...

  8. Mysql的视图、存储过程、函数、索引全解析

    视图是查询命令结果构成的一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集合,并可以当作表来查询使用. 1创建视图 --格式:C ...

  9. MySQL4:存储过程和函数

    什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理.本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用.查看.修改.删除存储过程和存储函 ...

随机推荐

  1. PP-物料清单用户处理手册

    1 系统操作时间 1. 新旧物料的替换需有BOM的产生2. BOM中组件发生变化时需有BOM的更改2 系统操作权限角色编码 角色名称Z:PP_PS_007_1000_200 PP主数据维护员 3 适应 ...

  2. array与List之间相互转化

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/28 16:05 # @Author : zhang chao # @Fi ...

  3. scipy线性模块liner(linalg)

    #liner import numpy as np from scipy import linalg as lg arr=np.array([[1,1],[0,1]]) matr=np.mat('[1 ...

  4. mysql 由decimal 引起的 Warning: Data truncated for column

    今天在使用python 库mysqldb的rawsql的时候遇到一个问题(其实并不是mysqlbean引起的) cls.raw_sql('update {table} set available_am ...

  5. elk安装最佳实践

    一.添加清华源 .x.repo<<EOF [elasticsearch-.x] name=Elasticsearch repository .x packages baseurl=http ...

  6. mysql 性能指标

    qps 每秒处理的查询数tps 每秒处理的事务数IOPS 每秒磁盘进行的I/O操作次数 一.TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数. ...

  7. hdu1728 逃离迷宫

    给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位 ...

  8. day31 logging 日志模块

    # logging 日志模块 ****** # 记录用户行为或者代码执行过程 # print 来回注释比较麻烦的 # logging # 我能够“一键”控制 # 排错的时候需要打印很多细节来帮助我排错 ...

  9. Leetcode 242.有效的字母异位词 By Python

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" ...

  10. SQLITE在IIS中使用问题

    在WEB中使用这个数据库时,System.Data.SQLite.dll 这个经常会出问题 主要是版本问题,sqlite.DLL的版本要和Framework版本匹配 这是下载地址 http://www ...