gpt4 book ai didi

Mysql - 创建存储过程

转载 作者:行者123 更新时间:2023-11-29 01:37:10 25 4
gpt4 key购买 nike

使用 Ver 14.12 Distrib 5.0.45 (我知道它很旧),

文件:storedprocedure.sql包含:

DELIMITER //
CREATE PROCEDURE loadDashboard
(
IN limitStr int(11)
)
BEGIN
SELECT table123.ID
FROM table123
ORDER BY date_lastmodified LIMIT limitStr;
END //
DELIMITER ;

我已经尝试过执行这个命令行:

mysql -u root -p -h localhost DB < storedprocedure.sql

从内部

mysql -u root -p -h localhost DB

mysql> *copied the code in from storedprocedure.sql

我得到的错误是:ERROR 1064 (42000) 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 'limitStr

然而,另一个question StackOverflow 上使用了这种精确的语法并且它适用于其他所有人?

最佳答案

您正在使用保留字 table。尝试以下操作。经测试工作正常。如果您需要使用 if-y 字,例如保留字,请用反引号将其括起来。这包括包含空格或连字符的列名和表的单词。

架构:

drop table if exists mytable123;
create table mytable123
(
id int auto_increment primary key,
date_lastmodified datetime not null
);

insert mytable123(date_lastmodified) values ('2006-07-23'),('2006-07-27 13:10:09');

存储过程:

drop procedure if exists loadDashboard;
DELIMITER //
CREATE PROCEDURE loadDashboard
(
IN limitStr int(11)
)
BEGIN
DECLARE theLimit int; -- to maintain compatibility (see comment from user wchiquito)

set theLimit=limitStr;

SELECT ID
FROM mytable123
ORDER BY date_lastmodified
LIMIT theLimit; -- use the local variable for this
END //

DELIMITER ;

测试:

call loadDashboard(1);
call loadDashboard(17);

MySQL Reserved Words ... 带有 (R) 的那些。

关于Mysql - 创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273397/

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