delimiter 与 存储过程

news/2025/6/19 17:54:15

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

  IF not EXISTS (SELECT*FROMinformation_schema. COLUMNSWHEREtable_schema = 'thc_rcm'AND table_name = 'Cs_AccountBillDetail'AND column_name = 'shopSetItemId') THENALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT '套餐的订单明细ID' AFTER `itemId`;END IF;

 

 

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

DELIMITER //IF not EXISTS (SELECT*FROMinformation_schema. COLUMNSWHEREtable_schema = 'thc_rcm'AND table_name = 'Cs_AccountBillDetail'AND column_name = 'shopSetItemId') THENALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT '套餐的订单明细ID' AFTER `itemId`;END IF;END//
DELIMITER ;

 

 

 

3.OK

 

DELIMITER //
CREATE PROCEDURE thc_rcm_change ()BEGINIF not EXISTS (SELECT*FROMinformation_schema. COLUMNSWHEREtable_schema = 'thc_rcm'AND table_name = 'Cs_AccountBillDetail'AND column_name = 'shopSetItemId') THENALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`ADD COLUMN `shopSetItemId` varchar(64) DEFAULT NULL COMMENT '套餐的订单明细ID' AFTER `itemId`;END IF;END//
DELIMITER ;
CALL thc_rcm_change ();
DROP PROCEDURE
IF EXISTS thc_rcm_change;

 

 

 

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

 

DELIMITER //
CREATE PROCEDURE thc_rcm_change ()BEGINIF not EXISTS (SELECT*FROMinformation_schema. COLUMNSWHEREtable_schema = 'thc_rcm'AND table_name = 'Cs_AccountBillDetail'AND column_name = 'shopSetItemId') THENALTER TABLE `thc_rcm`.`Cs_AccountBillDetail`drop COLUMN shopSetItemId;END IF;END//
DELIMITER ;
CALL thc_rcm_change ();
DROP PROCEDURE
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中执行不成功 

转载于:https://www.cnblogs.com/guchunchao/p/9861363.html


https://dhexx.cn/news/show-2257066.html

相关文章

java实现word下载_JAVA实现Word/Excel读写

概述介绍Apache poi的hwpf模块是专门用来对word doc文件进行读写操作的。在hwpf里面我们使用HWPFDocument来表示一个word doc文档。在HWPFDocument里面有这么几个概念:Range:它表示一个范围,这个范围可以是整个文档,也可以是里面的…

Linux下实现免密码登录

1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文件夹 进入“.ssh”会生成以下几个文件 authorized_keys:存放远程免密登录的公钥,主要通过这个文件记…

java实验6 词频统计_JAVA实训一——词频统计

实验小组:领航员:16012012张志贤 组员:16012014李鑫码云地址:https://gitee.com/lixin-123/practical_training实验背景:本次实验,是由小组内两人完成。按照要求,和一个伙伴坐在一起&#xf…

React 单元测试策略及落地 #一篇就够系列

写好的单元测试,对开发速度、项目维护有莫大的帮助。前端的测试工具一直推陈出新,而测试的核心、原则却少有变化。与产品代码一并交付可靠的测试代码,是每个专业开发者应该不断靠近的一个理想之地。本文就围绕测试讲讲,为什么我们…

java调用dubbo服务接口_Dubbo使用invoke指令来调用dubbo接口

Dubbo使用invoke指令来调用dubbo接口前言最近被分配了一个任务,是通过dubbo的方式对外提供服务,dubbo没有我们一般的web项目中的Controller层,所以没有办法通过http的方式进行调用调试。作为萌新的我,确实有点一筹莫展&#xff0c…

设置redis 密码

redis配置密码 1.通过配置文件进行配置 yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 [plain] view plain copy requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件 [plain] view plain copy requirepass my…

程序员如果只钻研技术其实是很蠢的

前言程序员一门心思钻研技术其实是一件很蠢的事情。复制代码因为大部分人并不是那1%的天才,也完全没办法做到十年如一日地钻研技术,至于光靠兴趣驱动,未免太过理想。如何解决那么,如果我们没有足够的信念和能力可以走出一条自己的…

linux mysql服务器安装_Mysql在Linux服务器安装

1、前置准备a. CentOS系统搭建b.卸载旧MYSQL信息,查找mysql残留包,有则删除,没有则忽略 find / -name mysql2、下载二进制安装包并解压#进入下载安装目录cd /usr/local/#下载安装包wget https://downloads.mysql.com/archives/get/file/mysql…

java二维数组奇数行从大到小_java二维数组实例

第2章 对象数组及二维数组课程回顾: 课程回顾: OO:属性行为 OO:属性 特性:封装继承多态 特性:封装继承 第2章 对象数组及二维数组 Java基础知识 Java......[];//声明放杨辉三角的二维数组 System.out.println("杨辉三角"); for(i0;i关于java用二维数组编杨辉三角(具体…

salt一键部署habse

1.准备工作 2.salt关于hbase的部署脚本,就是上面的init.sls中的内容,至于下面的内容的每一项的意思在之前jdk的脚本中有写。 hbase-file:file.managed:- source: salt://hbase/hbase-1.2.4.tar.gz- name: /opt/hbase-1.2.4.tar.gz- include_empty: True-…