我创建了一个存储过程
CREATE PROCEDURE GetAllRecords()
BEGIN
SELECT * FROM my_table;
END //
现在我想在此存储过程中添加一个参数,如下所示:
CREATE PROCEDURE GetAllRecords(id1 INT(4))
BEGIN
SELECT * FROM my_table WHERE `id` = id1;
END //
如何编辑存储过程?
答案 0 :(得分:1)
删除程序
drop procecdure GetAllRecords//
重新创建
CREATE PROCEDURE GetAllRecords(id1 INT(4)) ...
答案 1 :(得分:0)
首先删除程序,然后重新创建
DROP PROCEDURE IF EXISTS GetAllRecords;
CREATE PROCEDURE GetAllRecords(IN _id INT)
SELECT *
FROM my_table WHEREid = _id;
由于你在程序中使用了唯一的语句,你可以抛弃BEGIN ... END
阻止并使用通常的分隔符。
如果你想知道在这种情况下你不能使用ALTER PROCEDURE
此语句可用于更改存储的特征 程序。但是,您无法更改参数或正文 使用此语句的存储过程;做出这样的改变,你 必须使用
DROP PROCEDURE
和CREATE PROCEDURE
删除并重新创建该过程。
答案 2 :(得分:0)
首先,这不是如何在存储过程中传递参数的方法。 您无法更改存储过程,执行此操作的方法是删除现有文件并创建新文件。
DELIMITER $$
DROP PROCEDURE IF EXISTS GetAllRecords$$
CREATE PROCEDURE GetAllRecords(IN param1 INT, OUT pram2 Varchar(100), INOUT param3 Date)
BEGIN
select * from <tbl>;
< Your queries>
END$$
DELIMITER ;
有关存储过程的完整详细信息 请点击链接
http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/
http://dev.mysql.com/tech-resources/articles/mysql-storedprocedures.pdf
答案 3 :(得分:0)
要更改存储过程,请选中此链接
http://technet.microsoft.com/en-us/library/ms345356.aspx
最好的方法是删除存储的过程并再次创建
DROP PROCEDURE IF EXISTS GetAllRecords
CREATE PROCEDURE GetAllRecords(IN _id INT)
AS
BEGIN
SELECT *
FROM my_table WHEREid = _id;
END