当前位置: 首页 > 知识库问答 >
问题:

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

严修诚
2023-03-14

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

“#1064-您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以了解使用近‘TRUNCATE TABLEsplittedstringtable的正确语法。”

    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

共有1个答案

皇甫繁
2023-03-14

在MariaDB/MySQL中,语句以分号结尾 。在每条语句后加分号。

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

 类似资料: