我在 mysql 中有一个程序正在对 DB 做一些事情,但是如果它存在,它需要抛出异常。我怎么做?
我需要类似的东西
if exist <db name> then
SIGNAL SQLSTATE '45002'
SET MESSAGE_TEXT = 'This database already exist';
end if;
我在 mysql 中有一个程序正在对 DB 做一些事情,但是如果它存在,它需要抛出异常。我怎么做?
我需要类似的东西
if exist <db name> then
SIGNAL SQLSTATE '45002'
SET MESSAGE_TEXT = 'This database already exist';
end if;
你可以使用这个 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 程序,也没有测试过这个程序。只是为了给出一种可能的实现方式而提及。另外,这个例子并不完整。)