gpt4 book ai didi

MySQL查询浏览器程序错误代码-1

转载 作者:行者123 更新时间:2023-11-29 02:08:26 24 4
gpt4 key购买 nike

我在使用 MySQL 时遇到了一个相当奇怪的问题。尝试创建一个过程来更新数据库中的某些字段(代码如下)。

问题出在当前注释的行上。似乎如果在过程中没有执行 SELECT 语句,MySQL 查询浏览器将返回错误代码“-1,执行 SQL 查询时出错”。

我在 HeidiSQL 中尝试了同样的操作,但错误是“无法返回结果集”。所以我想问题是我是否总是必须在程序中选择一些东西,还是我错过了一些其他东西。

删除评论后查询工作正常。

DELIMITER /
DROP PROCEDURE IF EXISTS updateFavourites /
CREATE PROCEDURE updateFavourites(quota INT)
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE artist_id,releases INT;
DECLARE c_artist Cursor FOR
SELECT Artist.id_number,COUNT(Artist.id_number) FROM Artist
JOIN CD ON CD.is_fronted_by = Artist.id_number
GROUP BY Artist.id_number;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
SET done=1;

IF quota > 0 THEN
OPEN c_artist;
REPEAT
FETCH c_artist INTO artist_id,releases;
IF NOT done THEN
IF releases >= quota THEN
UPDATE CD SET CD.rating='favourite' WHERE CD.is_fronted_by = artist_id;
END IF;
END IF;
UNTIL done END REPEAT;
CLOSE c_artist;
-- SELECT 'Great success';
ELSE
SELECT CONCAT('\'quota\' must be greater than 0.',' Got (',quota,')');
END IF;

END /
DELIMITER ;

这是创建表和一些数据的 sql:

DROP TABLE IF EXISTS CD;
DROP TABLE IF EXISTS Artist;

CREATE TABLE Artist (
id_number INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
);

CREATE TABLE CD (
catalog_no INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY,
is_fronted_by INT UNSIGNED,
rating ENUM ('favourite','top draw','good','so-so','poor','rubbish'),
CONSTRAINT fk_CD_Artist FOREIGN KEY (is_fronted_by) REFERENCES Artist(id_number) ON UPDATE CASCADE
);

INSERT INTO Artist VALUES(11,'Artist 1');
INSERT INTO Artist VALUES(10,'Artist 2');
INSERT INTO CD VALUES (7,11, 'top draw');
INSERT INTO CD VALUES (650,11,'good');
INSERT INTO CD VALUES (651,11,'good');
INSERT INTO CD VALUES (11,10,'favourite');

最佳答案

查询浏览器不用于运行脚本,仅用于单个查询。我通过将光标移动到每个查询(DELIMITER 除外)并按 Ctrl+Enter 来尝试您的代码。它毫无问题地创建了该存储过程。 (只需刷新左侧的架构)。

如果您希望创建过程,请使用菜单“脚本”->“创建存储过程/函数”。

但最好忘记 QueryBrowser,它根本不受支持(实际上也没有用)。如果您有不错的硬件和充足的资源,请尝试 Workbench 5.2否则使用 SQLyog

关于MySQL查询浏览器程序错误代码-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1847656/

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