我阅读了文档,似乎为了有一个存储过程,我必须输入一些命令如下:
DELIMITER //
CREATE PROCEDURE
myDB.RoutingName /* Routine name */
(IN parameter_1_id INTEGER) /* Parameter list */
BEGIN /* Routine body */
SELECT * FROM mytable WHERE id = parameter_1_id
END;
DELIMITER ;
我尝试将上面的行输入到文件中,然后将它们复制/粘贴到phpmyadmin SQL部分以将其提供给MYSQL服务器,但是我收到语法错误。
我想知道输入存储过程的正确方法是什么?特别是当它们很大并且由许多线组成时?
答案 0 :(得分:2)
你需要一个;在查询之后,END之后的分隔符应该是您首先指定的分隔符。
DELIMITER //
CREATE PROCEDURE
myDB.RoutingName /* Routine name */
(IN parameter_1_id INTEGER) /* Parameter list */
BEGIN /* Routine body */
SELECT * FROM mytable WHERE id = parameter_1_id;
END//
DELIMITER ;
答案 1 :(得分:0)
好的,我确实找到了答案。
输入存储过程的最佳方法是将其保存到以下文件中:
myprocedure.sql
然后保存SQL语句,如:
DELIMITER //
CREATE PROCEDURE
myDB.RoutingName /* Routine name */
(IN parameter_1_id INTEGER) /* Parameter list */
BEGIN /* Routine body */
SELECT * FROM mytable WHERE id = parameter_1_id; /* first statement */
SELECT * FROM mytable WHERE id = parameter_1_id; /* second statement */
/* Loops and other statement go here, each separated by a ; */
END//
DELIMITER ;
然后转到命令行并发出:
$ mysql -u username -p < myprocedure.sql
输入您的密码,现在保存您的程序。 从现在开始,您可以通过在MYSQL客户端shell提示符中发出CALL命令来调用该过程。