调用时抛出错误的MySQL存储过程
当我创建这个存储过程时,我没有收到任何错误,而且创建得很好调用时抛出错误的MySQL存储过程,mysql,database,stored-procedures,Mysql,Database,Stored Procedures,当我创建这个存储过程时,我没有收到任何错误,而且创建得很好 DELIMITER $$ CREATE DEFINER=`portaluser`@`%` PROCEDURE `sp_CreateDatabaseAndTablesByIdAndName`( IN p_vendorId VARCHAR(256), IN p_name VARCHAR(256) ) BEGIN SET @db_create = CONCAT('CREATE DATABASE IF NOT EXISTS xx_cl
DELIMITER $$
CREATE DEFINER=`portaluser`@`%` PROCEDURE `sp_CreateDatabaseAndTablesByIdAndName`(
IN p_vendorId VARCHAR(256),
IN p_name VARCHAR(256)
)
BEGIN
SET @db_create = CONCAT('CREATE DATABASE IF NOT EXISTS xx_client_', p_vendorId, '_', p_name);
PREPARE stmt FROM @db_create;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
当我调用这个存储过程时,它创建了数据库,但抛出了一个警告:1295这个命令在prepared语句协议中还不受支持
CALL sp_CreateDatabaseAndTablesByVidAndName('11111', 'xx');
我似乎在网上找不到任何地方能确切地告诉我为什么这会抛出一个错误,因为这是一个相当简单的查询。我见过其他人基本上做同样的事情,没有任何问题。我需要第二双眼睛来告诉我哪里出了问题。感谢您的帮助
**注意:我以前将p_VendorId更改为INT(11),并按以下方式调用它,但仍然得到相同的错误:
CALL sp_CreateDatabaseAndTablesByVidAndName(11111, 'xx');
原来是因为我这么做的:
END
而不是:
END $$
DELIMITER ;
你的mysql版本是什么?