MySQL例程不起作用

时间:2016-02-10 20:27:11

标签: mysql mariadb

我有一个例程,我试图在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

1 个答案:

答案 0 :(得分:1)

Create.Site让我担心。您可以将其更改为Create_Site并更改CALL。您应用它的数据库的名称是什么。

您是否在CALL之后检查了错误?