如何检查mysql过程中是否存在数据库

时间:2013-03-06 10:49:52

标签: mysql

我在mysql中有一个程序正在对DB做一些事情,但它需要在它存在的情况下抛出异常。我该怎么做?

我需要像

这样的东西
if exist <db name> then
  SIGNAL SQLSTATE '45002'
  SET MESSAGE_TEXT = 'This database already exist';
end if;

1 个答案:

答案 0 :(得分:1)

您可以使用此SQL:

SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'

在一个程序中,它将是这样的:

DECLARE name TEXT;
SELECT SCHEMA_NAME INTO name FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
IF name = 'DBName' THEN
   SIGNAL SQLSTATE '45002'
   SET MESSAGE_TEXT = 'This database already exist';
END IF;

(免责声明:我之前没有编写MySQL程序,我没有测试过这个程序。只提到了可能的实现方式。此外,这个例子还不完整。)

相关问题