首页 > 解决方案 > .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

解决方案


问题是您使用的是mariadb,而不是mysql。如果您查看错误消息,它会告诉您参考 mariadb 手册。

Mariadb 的get diagnostics语句没有stacked选项,所以如果你想在 mariadb 环境中使用代码或者需要迁移到合适的 mysql 服务器,你必须删除它。


推荐阅读