我正在MariaDB中创建一个过程,但是给出了错误“#1064”

问题描述 投票:0回答:1

我正在为MariaDB中的拆分字符串创建一个过程,但是它给出了错误

“#1064-您的SQL语法有误;请查看与您的MariaDB服务器版本相对应的手册,以在'TRUNCATE TABLE splittedstringtable”]附近使用正确的语法。

    CREATE PROCEDURE splitstring( IN splittedstring varchar(256))
BEGIN
    CREATE TABLE IF NOT EXISTS splittedstringtable (ID INT NOT NULL AUTO_INCREMENT,NAME VARCHAR(256) NOT NULL,PRIMARY KEY (ID))

 TRUNCATE TABLE `splittedstringtable`

    DECLARE x INT DEFAULT 0
    DECLARE y INT DEFAULT 0 

    SET y = 1

    IF NOT splittedstring IS NULL 
    THEN 
           SELECT LENGTH(splittedstring) - LENGTH(REPLACE(splittedstring, ',', '')) INTO @noOfCommas

           IF  @noOfCommas = 0 
          THEN 
                 INSERT INTO splittedstringtable(NAME) VALUES(splittedstring) 
          ELSE 
                SET x = @noOfCommas + 1 
                WHILE y  <=  x DO 
                   SELECT split_string(splittedstring, ',', y) INTO @engName 
                   INSERT INTO splittedstringtable(NAME) VALUES(@engName)
                   SET  y = y + 1
                END WHILE
        END IF
    END IF
END

我正在为MariaDB中的拆分字符串创建一个过程,但它给出错误“#1064-您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册以了解...]]

sql mariadb procedure
1个回答
0
投票

在MariaDB / MySQL中,语句以分号;终止。在每个语句后添加分号。

您可能还需要重新考虑使用临时表而不是普通表,因为当多个用户同时运行该过程时,您可能会遇到麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.