过程参数问题 - Mysql 5.1 SQL Error 1064

发布于 2024-11-27 21:32:56 字数 517 浏览 0 评论 0原文

以下内容适用于MYSQL 5.5 windows,不适用于MYSQL 5.1,ubuntu lucid

DELIMITER $$

CREATE PROCEDURE `queueup`( IN groupsize INT, OUT done INT)
BEGIN

    DECLARE room INT;
    SET room = -1;
    UPDATE queue SET status = 'PLACED', assigned_room = room WHERE status = 'WAITING' ORDER BY queue_position ASC LIMIT groupsize;
END $$

SQL错误1064:

您的 SQL 语法有错误;检查手册 与您的 MySQL 服务器版本相对应,以便使用正确的语法 接近'groupsize;

The following works in MYSQL 5.5 windows, doesn't work in MYSQL 5.1, ubuntu lucid

DELIMITER $

CREATE PROCEDURE `queueup`( IN groupsize INT, OUT done INT)
BEGIN

    DECLARE room INT;
    SET room = -1;
    UPDATE queue SET status = 'PLACED', assigned_room = room WHERE status = 'WAITING' ORDER BY queue_position ASC LIMIT groupsize;
END $

SQL Error 1064:

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 'groupsize;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

煮茶煮酒煮时光 2024-12-04 21:32:56

在 MySQL 5.5 中,LIMIT 子句可以与变量一起使用;在你的情况下,“groupsize”是一个变量。

来自 参考 - 在存储的程序中,LIMIT 参数从 MySQL 5.5.6 开始,可以使用整数值例程参数或局部变量来指定。

In MySQL 5.5 LIMIT clause can be used with variables; in your case 'groupsize' is a variable.

From the reference - Within stored programs, LIMIT parameters can be specified using integer-valued routine parameters or local variables as of MySQL 5.5.6.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文