一、情形:

在.net调用Mysql时,比如如下的一句SQL,总是无法执行,可是在其它SQL客户端窗口中是能正确执行的。

drop procedure if exists AddColumnUnlessExists;
create procedure AddColumnUnlessExists(IN tableName tinytext,IN fieldName tinytext,IN fieldDef text)
begin
IF NOT EXISTS(
SELECT * FROM information_schema.COLUMNS
WHERE column_name = fieldName
and table_name = tableName
and table_schema = 'MyTestDB'
)
THEN
set @ddl = CONCAT('ALTER TABLE ', 'MyTestDB', '.', tableName,' ADD COLUMN ', fieldName, ' ', fieldDef);
prepare stmt from @ddl; execute stmt;
END IF; end; "

二、解决方案:

连接语句中添加:allowuservariables=True;即可。

MySql中存储过程中的@变量总是无法执行,提示Parameter '@XXX' must be defined的更多相关文章

  1. mysql 执行 sql 语句提示Parameter '@XXX' must be defined

    执行 sql 语句 MySqlException: Parameter '@maxNo' must be defined. 执行 sql 中含有自定义变量 @maxNo,抛出异常 解决方法: 连接字符 ...

  2. SQL中存储过程中使用事务,并且加入异常处理机制.

    --存储过程中使用事务,并且加入异常处理机制. -- ============================================= CREATE PROCEDURE [dbo].[UP_ ...

  3. oracle中存储过程中调用存储过程

    存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...

  4. Mysql向存储过程中传递中文参数变成乱码的解决方案

    今天做程序需要用到一个存储过程,然后用php程序调用.  存储过程如下: delimiter $$ CREATE PROCEDURE disagree_upgrade_detail(a int,b t ...

  5. mysql创建存储过程中的问题

    1.在创建存储过程成功后,使用call 存储过程名执行时报错: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_gener ...

  6. MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist

    MySQL很强大,支持直接拷贝数据库文件快速备份,那数据库文件在哪里呢? 打开MySQL的配置文件 my.ini,找到 datadir 节点,如 datadir="D:/Program Fi ...

  7. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  8. MySQL存储过程中使用SELECT …INTO语句为变量赋值

    使用SELECT …INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT …INTO语句 ...

  9. mysql -- 存储过程中 declare 和 set 定义变量的区别

    mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...

随机推荐

  1. thinkphp 找数据库某个字段为空的数据,PHP 数据调取 空数据

    $arr['dingwei'] = array('EXP','is null');

  2. Spring Boot 实现 RabbitMQ 延迟消费和延迟重试队列

    本文主要摘录自:详细介绍Spring Boot + RabbitMQ实现延迟队列 并增加了自己的一些理解,记录下来,以便日后查阅. 项目源码: spring-boot-rabbitmq-delay-q ...

  3. CentOS 7 安装配置 OpenVPN 客户端

    安装 epel yum 源: $ rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm $ ...

  4. MySql的编译安装

    一 前期准备 1 cmake包,要求2.8以上版本 https://cmake.org/download/ 2 boost库包 boost Boost库是一个可移植.提供源代码的C++库,作为标准库的 ...

  5. Java线程池核心原理剖析

    在系统开发时,我们经常会遇到“池”的概念.使用池一种以空间换时间的做法,通常在内存中事先保存一系列整装待命的对象,以供后期供其他对象随时调用.常见的池有:数据库连接池,socket连接池,线程池等.今 ...

  6. [Swift]LeetCode875. 爱吃香蕉的珂珂 | Koko Eating Bananas

    Koko loves to eat bananas.  There are N piles of bananas, the i-th pile has piles[i]bananas.  The gu ...

  7. 6.jQuery(实例)

    1.开关灯效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. java设计模式(2)---六大原则

    设计模式之六大原则 这篇博客非常有意义,希望自己能够理解的基础上,在实际开发中融入这些思想,运用里面的精髓. 先列出六大原则:单一职责原则.里氏替换原则.接口隔离原则.依赖倒置原则.迪米特原则.开闭原 ...

  9. redis 系列23 哨兵Sentinel (上)

    一.概述 Sentinel(哨岗或哨兵)是Redis的高可用解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主 ...

  10. 深入理解Mybatis插件开发

    背景 关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能:但对 ...