MySQL 例程不工作
MySQL Routine Not Working
我试图在 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 错误日志中也没有任何内容。我试过更改所有名称 (columns/tables/routine)
还将 SELECT @full_error;
更改为 SELECT @full_error INTO OUTFILE '/var/log/mysql/create-site-error.txt';
并且没有创建任何内容...
我在这里做错了什么,我怎样才能让它工作?
MySQL: Ver 15.1 Distrib 10.0.23-MariaDB
Create.Site
让我担心。你能把它改成Create_Site
并改成CALL
吗?您要应用它的数据库的名称是什么。
你在 CALL
之后检查错误了吗?
我试图在 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 错误日志中也没有任何内容。我试过更改所有名称 (columns/tables/routine)
还将 SELECT @full_error;
更改为 SELECT @full_error INTO OUTFILE '/var/log/mysql/create-site-error.txt';
并且没有创建任何内容...
我在这里做错了什么,我怎样才能让它工作?
MySQL: Ver 15.1 Distrib 10.0.23-MariaDB
Create.Site
让我担心。你能把它改成Create_Site
并改成CALL
吗?您要应用它的数据库的名称是什么。
你在 CALL
之后检查错误了吗?