我来自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
答案 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。
所以如果你想改变它的参数或它的主体,你将不得不放弃并创建程序。