0

我有一个 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,我不知道该怎么做。

4

2 回答 2

0

与其重新发明轮子,不如看看Liquibase

它基本上为您完成了这项工作,您可以将其集成到您的构建中。

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

于 2013-04-17T12:24:38.580 回答
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 (select  1 FROM [dbo].[LogScript] WHERE NomScript = 'MyScriptName')
WHEN 1 THEN --Statement
END CASE
于 2013-04-17T12:12:57.883 回答