Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入MYSQL存储过程的正确方法是什么?_Mysql_Stored Procedures_Mariadb - Fatal编程技术网

输入MYSQL存储过程的正确方法是什么?

输入MYSQL存储过程的正确方法是什么?,mysql,stored-procedures,mariadb,Mysql,Stored Procedures,Mariadb,我阅读了文档,似乎为了有一个存储过程,我必须输入以下命令: DELIMITER // CREATE PROCEDURE myDB.RoutingName /* Routine name */ (IN parameter_1_id INTEGER) /* Parameter list */ BEGIN /* Routine body

我阅读了文档,似乎为了有一个存储过程,我必须输入以下命令:

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服务器,但收到语法错误


我想知道输入存储过程的正确方法是什么?特别是当它们很大并且由许多行组成时?

您需要一个;在查询之后,结束后的分隔符应该是您首先指定的分隔符

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 ;

你需要一份工作;在查询之后,结束后的分隔符应该是您首先指定的分隔符

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 ;

你需要一份工作;在查询之后,结束后的分隔符应该是您首先指定的分隔符

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 ;

你需要一份工作;在查询之后,结束后的分隔符应该是您首先指定的分隔符

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-u username-p
输入密码,现在您的过程已保存。
从现在起,您可以通过在MYSQL客户端shell提示符下发出call命令来调用该过程。

好的,我实际上找到了答案

输入存储过程的最佳方法是将其保存到如下文件中:

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-u username-p
输入密码,现在您的过程已保存。
从现在起,您可以通过在MYSQL客户端shell提示符下发出call命令来调用该过程。

好的,我实际上找到了答案

输入存储过程的最佳方法是将其保存到如下文件中:

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-u username-p
输入密码,现在您的过程已保存。
从现在起,您可以通过在MYSQL客户端shell提示符下发出call命令来调用该过程。

好的,我实际上找到了答案

输入存储过程的最佳方法是将其保存到如下文件中:

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-u username-p
输入密码,现在您的过程已保存。
从现在起,您可以通过在MYSQL客户端shell提示符下发出call命令来调用该过程。

如果您想要一个创建存储过程的好的、通用的指南,请进入MYSQL管理员,单击备份并创建备份类型为“SQL文件”的备份。这将为您提供一个非常好的模板,您可以从中复制。如果您想要一个创建存储过程的好的、通用的指南,请进入MySQL管理员,单击备份并创建备份类型为“SQL文件”的备份。这将为您提供一个非常好的模板,您可以从中复制。如果您想要一个创建存储过程的好的、通用的指南,请进入MySQL管理员,单击备份并创建备份类型为“SQL文件”的备份。这将为您提供一个非常好的模板,您可以从中复制。如果您想要一个创建存储过程的好的、通用的指南,请进入MySQL管理员,单击备份并创建备份类型为“SQL文件”的备份。这将为您提供一个非常好的模板,您可以从中复制。