gpt4 book ai didi

mysql - 在 sql 文件中设置 MySQL 分隔符

转载 作者:可可西里 更新时间:2023-11-01 07:09:52 24 4
gpt4 key购买 nike

我想在 sql 文件中设置分隔符(因为我不能依赖用户通过终端来完成)。

是否有允许我设置分隔符的 mysql 语句?

使用

DELIMITER //

抛出一个错误。

# Categories schema

# --- !Ups


CREATE TABLE IF NOT EXISTS `category` (
`id` INT NOT NULL AUTO_INCREMENT ,
`pid` INT NULL DEFAULT 0 ,
`label` VARCHAR(64) NULL ,
`active` TINYINT NULL DEFAULT 0,
PRIMARY KEY (`id`) );

DELIMITER //

CREATE FUNCTION hierarchy_connect_by_parent_eq_prior_id(value INT) RETURNS INT
NOT DETERMINISTIC
READS SQL DATA
BEGIN
DECLARE _id INT;
DECLARE _parent INT;
DECLARE _next INT;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET @id = NULL;

SET _parent = @id;
SET _id = -1;

IF @id IS NULL THEN
RETURN NULL;
END IF;

LOOP
SELECT MIN(id)
INTO @id
FROM category
WHERE pid = _parent
AND id > _id;
IF @id IS NOT NULL OR _parent = @start_with THEN
SET @level = @level + 1;
RETURN @id;
END IF;
SET @level := @level - 1;
SELECT id, pid
INTO _id, _parent
FROM category
WHERE id = _parent;
END LOOP;
END//

DELIMITER ;

# --- !Downs

#DROP TABLE category;

We got the following error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER / CREATE FUNCTION hierarchy_connect_by_parent_eq_prior_id(value INT) ' at line 1 [ERROR:1064, SQLSTATE:42000], while trying to run this SQL script:

最佳答案

我在MySql版本中使用delimiter命令时出现同样的错误,但是这个版本处理了分隔符“;”对于语句和分隔符“|”对于存储过程和函数,我认为这可以解决问题;试试这个:

-- 任何以逗号结尾的语句(选择、创建表、删除表、更新、删除等)

创建函数 hierarchy_connect_by_parent_eq_prior_id(value INT) RETURNS INT

-- 这里是函数体

结束|

-- 此处的其他语句或函数

关于mysql - 在 sql 文件中设置 MySQL 分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com