我有一个例程,我试图在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: Ver 15.1 Distrib 10.0.23-MariaDB
答案 0 :(得分:1)
Create.Site
让我担心。您可以将其更改为Create_Site
并更改CALL
。您应用它的数据库的名称是什么。
您是否在CALL
之后检查了错误?