MySQl IF NOT NOT EXISTS,创建存储过程

时间:2016-07-06 20:10:34

标签: mysql sql-server tsql stored-procedures

我来自Microsoft SQl使用其服务器管理工​​作室的背景。我最近切换到mysql,我正在寻找使用与MSSQL相同的方法创建存储过程。我想创建一个程序,如果它不存在,因为我更喜欢删除如果存在。下面是我将在MSSQL中使用的语法。任何帮助将不胜感激。

IF NOT EXISTS 
(
SELECT 
    1 
FROM 
    sysobjects WITH (NOLOCK) 
WHERE 
    [type] = 'P' AND name = 'Sproc'
)
EXEC('CREATE PROCEDURE dbo.Sproc AS BEGIN SET NOCOUNT ON; END')
GO

ALTER PROCEDURE dbo.Sproc
(
    @Sproc_Params
)
AS
BEGIN
.... --Sproc code
END

1 个答案:

答案 0 :(得分:1)

您可以查看mysql.proc以查看某个程序是否存在。

SELECT db, name FROM mysql.proc WHERE db = 'dbo' AND name = 'Sproc';

但是,在MySQL中,您无法ALTER PROCEDURE替换过程体。您只能更改该过程的一些属性。有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.7/en/alter-procedure.html

所以如果你想改变它的参数或它的主体,你将不得不放弃并创建程序。