mariadb - .sql 数据库导入不起作用。(存储过程错误)
问题描述
我是 MySQL 新手。我想从 .sql 文件导入数据库。表导入成功。
但它给出了有关程序的以下错误:
CREATE DEFINER=`dev`@`%` PROCEDURE `sp_PlaceBet`(
IN `pLogInId` INT,
IN `pUserId` INT,
IN `pParantId` INT,
IN `pMatchId` INT,
IN `pSelectionId` INT,
IN `pStack` INT,
IN `pMarketId` VARCHAR(100),
IN `pselectionName` VARCHAR(100),
IN `pMstDate` DATETIME,
IN `pOdds` DECIMAL(10, 2),
IN `pP_L` DECIMAL(10, 2),
IN `pisBack` INT,
IN `pIsMatched` INT,
IN `pNarration` VARCHAR(200),
IN `pdeviceInfo` VARCHAR(100),
IN `pIP_ADDESSS` VARCHAR(100),
IN `pInPlayStack` INT,
IN `pIsApp` INT,
IN `pType` VARCHAR(100)
)
BEGIN
DECLARE LID INTEGER;
DECLARE lCtr integer;
DECLARE resultV INT;
DECLARE retMess VARCHAR(500);
DECLARE checkBal decimal(50, 2);
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
set resultV = -1;
GET STACKED DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;
SET retMess = CONCAT("ERROR ", @errno, " (", @sqlstate, "): ", @text);
ROLLBACK;
[...]
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STACKED DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE, @errno = MYSQL...' at line 31
请帮我解决这个错误。
谢谢!
解决方案
问题是您使用的是mariadb,而不是mysql。如果您查看错误消息,它会告诉您参考 mariadb 手册。
Mariadb 的get diagnostics语句没有stacked
选项,所以如果你想在 mariadb 环境中使用代码或者需要迁移到合适的 mysql 服务器,你必须删除它。
推荐阅读
- python - 在处理子进程时,我的程序是 CPU 受限还是 IO 受限?
- metal - 如何将浮点数组传递给金属核函数?
- ruby - 从哈希的内容替换文件中的文本
- javascript - 迭代对象数组中存在的对象数组
- javascript - 以特定顺序迭代/附加内部数组到 Google Doc
- python - TwitterHTTPError 检索 Twitter 趋势时
- android - 无法在 Visual Studio 中使用 using(s) Xamarin
- java - 构造函数中的异常消息
- javascript - 权限被拒绝后如何重试移动浏览器地理位置
- c# - 使用简短的初始化语法来初始化对值列表