执行前检查条件

时间:2013-04-17 12:07:25

标签: mysql

我有一个Mysql数据库,其中包含一个包含在数据库上执行的所有脚本的表 我直接在sql中运行所有脚本,如果有人已经运行脚本,我想检查我的脚本。

在Sql Server中,我可以这样做:

IF EXISTS (SELECT 1 FROM [dbo].[LogScript] WHERE NomScript = 'MyScriptName')
BEGIN
  PRINT 'Warning : The script ''MyScriptName'' have already been runned on the database.'
  RETURN
END

由于你不能在Mysql中使用IF,我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

IF 1= (SELECT 1 FROM [dbo].[LogScript] WHERE NomScript = 'MyScriptName')
THEN
--Do something
--PRINT 'Warning : The script ''MyScriptName'' have already been runned on the database.';
END IF

select 'Warning : The script ''MyScriptName'' have already been runned on the database.'
FROM [dbo].[LogScript] WHERE NomScript = 'MyScriptName'

您还可以使用 Case

CASE (select  1 FROM [dbo].[LogScript] WHERE NomScript = 'MyScriptName')
WHEN 1 THEN --Statement
END CASE

答案 1 :(得分:0)

不要重新发明轮子,而是看看Liquibase

它基本上是为你做的,你可以将它集成到你的构建中。

我已经习惯了并且会再次使用它(实际上我会坚持它)。