我正在为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
答案 0 :(得分:1)
在MariaDB / MySQL中,语句以分号;
终止。在每个语句后添加分号。
您可能还想重新考虑使用临时表而不是普通表,因为当多个用户同时运行该过程时,您可能会遇到麻烦。