输入 MYSQL 存储过程的正确方法是什么?
What is the proper way to enter a MYSQL stored procedure?
我阅读了文档,似乎为了有一个存储过程我必须输入一些命令如下:
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 ;
我试图将以上行输入到文件中,然后 copy/paste 将它们输入到 phpmyadmin SQL 部分以将其输入 MYSQL 服务器,但我收到语法错误。
我想知道进入存储过程的正确方法是什么?特别是当它们很大并且包含很多行时?
你需要一个;查询之后和 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 ;
好的,我真的找到了答案。
输入存储过程的最佳方式是将其保存到如下文件中:
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 命令来调用该过程。
我阅读了文档,似乎为了有一个存储过程我必须输入一些命令如下:
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 ;
我试图将以上行输入到文件中,然后 copy/paste 将它们输入到 phpmyadmin SQL 部分以将其输入 MYSQL 服务器,但我收到语法错误。
我想知道进入存储过程的正确方法是什么?特别是当它们很大并且包含很多行时?
你需要一个;查询之后和 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 ;
好的,我真的找到了答案。
输入存储过程的最佳方式是将其保存到如下文件中:
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 命令来调用该过程。