mysql 在存储过程中插入语句不插入

mysql Insert Statements in Stored Procedure not Inserting

我创建了一个应该执行以下操作的存储过程: 插入 Agencies Table,在 PK 索引行中创建一个 id 将 id 保存在变量中 将 id 和其他数据插入 Users table

下面的语法不会触发任何错误:

DELIMITER $$

CREATE PROCEDURE insertNewAgencyAndAdmin (IN aName varchar (100), IN numTrav int, IN polType int, IN uEmail varchar(255), IN uFName varchar(40), IN uLName varchar(40), IN uTitle varchar(100))
BEGIN

INSERT INTO btsAgency.Agencies (agencyName, numTrav, polType) VALUES (@aName, @numTrav, @polType);

SET @agencyID = (SELECT agencyID from btsAgency.Agencies where agencyID = LAST_INSERT_ID());

INSERT INTO btsUsers.Users (userAgencyID, userEmail, userFirstName, userLastName, userTitle ) VALUES 
(@agencyID, @uEmail, @uFName, @uLName, @uTitle);

END

但是,存储过程在执行时不会将我的参数插入到 table 中。因此,在搜索之后,我尝试像这样创建 SP(包括“END”之后的 $$ 并将分隔符重置为分号):

DELIMITER $$

CREATE PROCEDURE insertNewAgencyAndAdmin (IN aName varchar (100), IN numTrav int, IN polType int, IN uEmail varchar(255), IN uFName varchar(40), IN uLName varchar(40), IN uTitle varchar(100))
BEGIN

INSERT INTO btsAgency.Agencies (agencyName, numTrav, polType) VALUES (@aName, @numTrav, @polType);

SET @agencyID = (SELECT agencyID from btsAgency.Agencies where agencyID = LAST_INSERT_ID());

INSERT INTO btsUsers.Users (userAgencyID, userEmail, userFirstName, userLastName, userTitle ) VALUES 
(@agencyID, @uEmail, @uFName, @uLName, @uTitle);

END $$
DELIMITER ;

MySql 创建存储过程,但出现以下错误:

1064 - 你的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1

行 'DELIMITER' 附近使用的正确语法

当我执行创建的存储过程时,它仍然没有在我的参数中插入数据。

如有任何帮助,我们将不胜感激。

你的存储过程中的一些问题:

DELIMITER $$

CREATE PROCEDURE `insertNewAgencyAndAdmin` (
  /*    
  IN `aName` varchar (100),
  IN `numTrav` int,
  IN `polType` int,
  IN `uEmail` varchar(255),
  IN `uFName` varchar(40),
  IN `uLName` varchar(40),
  IN `uTitle` varchar(100)
  */
  IN `_aName` varchar (100),
  IN `_numTrav` int,
  IN `_polType` int,
  IN `_uEmail` varchar(255),
  IN `_uFName` varchar(40),
  IN `_uLName` varchar(40),
  IN `_uTitle` varchar(100)
)
BEGIN
  /*  
  INSERT INTO `btsAgency`.`Agencies` (
    `agencyName`,
    `numTrav`,
    `polType`
  ) VALUES (
    @`aName`,
    @`numTrav`,
    @`polType`
  );
  */    
  INSERT INTO `btsAgency`.`Agencies` (
    `agencyName`,
    `numTrav`,
    `polType`
  ) VALUES (
    `_aName`,
    `_numTrav`,
    `_polType`
  );    
  /*
  SET @`agencyID` = (SELECT `agencyID` from `btsAgency`.`Agencies` where `agencyID` = LAST_INSERT_ID());

  INSERT INTO `btsUsers`.`Users` (
    `userAgencyID`,
    `userEmail`,
    `userFirstName`,
    `userLastName`,
    `userTitle`
  ) VALUES (
    @`agencyID`,
    @`uEmail`,
    @`uFName`,
    @`uLName`,
    @`uTitle`
  );
  */    
  INSERT INTO `btsUsers`.`Users` (
    `userAgencyID`,
    `userEmail`,
    `userFirstName`,
    `userLastName`,
    `userTitle`
  ) VALUES (
    LAST_INSERT_ID(),
    `_uEmail`,
    `_uFName`,
    `_uLName`,
    `_uTitle`);
END$$

DELIMITER ;

SELECT * 从折扣 $$ 分隔符 $$; CREATE PROCEDURE insertData(IN id int,IN title varchar(255),IN amount decimal) 开始

插入折扣值 (id,title,amount); 结尾; $$ 调用 insertData(3,"sadasd",56);

/*删除过程 insertData */