我在mysql中有一个程序正在对DB做一些事情,但它需要在它存在的情况下抛出异常。我该怎么做?
我需要像
这样的东西if exist <db name> then
SIGNAL SQLSTATE '45002'
SET MESSAGE_TEXT = 'This database already exist';
end if;
答案 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程序,我没有测试过这个程序。只提到了可能的实现方式。此外,这个例子还不完整。)