我正在尝试在 mysql 服务器上创建一个例程。
DELIMITER //
CREATE PROCEDURE `Create.Site`( SrvID BIGINT(20), sType BIGINT(20),
sParent BIGINT(20), sName VARCHAR(150),
sDesc LONGTEXT, sSetts LONGTEXT )
BEGIN
DECLARE ID BIGINT(20);
/* Error Handling */
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE,
@errno = MYSQL_ERRNO,
@text = MESSAGE_TEXT;
SET @full_error = CONCAT("ERROR ", @errno,
" (", @sqlstate, "): ",
@text);
SELECT @full_error;
ROLLBACK;
END;
COMMIT;
START TRANSACTION;
INSERT INTO `Sites`
(`serverID`, `siteType`, `siteParent`)
VALUES
(SrvID, sType, sParent);
SET ID = LAST_INSERT_ID();
INSERT INTO `Common`
(`attachWhich`, `attachID`, `commName`, `commSettings`)
VALUES
(2, ID, sName, sDesc);
COMMIT;
END//
DELIMITER ;
虽然它创建甚至执行时没有错误,但没有创建任何数据。 mysql错误日志中也没有任何内容。我尝试更改所有名称(列/表/例程)
还将SELECT @full_error;
更改为SELECT @full_error INTO OUTFILE '/var/log/mysql/create-site-error.txt';
并且有没有创建任何内容...
我在这里做错了什么,我怎样才能让它发挥作用?
MySQL:版本 15.1 Distrib 10.0.23-MariaDB
最佳答案
Create.Site
让我担心。您能否将其更改为Create_Site
并更改CALL
。您要应用它的数据库的名称是什么。
您在CALL
之后检查过错误吗?
关于MySQL 例程不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325239/