我在mysql中有一个与DB做某事的过程,但是它需要抛出异常以防它存在。我怎么做?如何检查数据库是否存在于mysql程序中
我需要这样的东西
if exist <db name> then
SIGNAL SQLSTATE '45002'
SET MESSAGE_TEXT = 'This database already exist';
end if;
我在mysql中有一个与DB做某事的过程,但是它需要抛出异常以防它存在。我怎么做?如何检查数据库是否存在于mysql程序中
我需要这样的东西
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程序,我没有测试过这个,只是提到了pos的方式实施。此外,这个例子是不完整的。)
已经在这里问过这里:http://stackoverflow.com/questions/838978/how-to-check-if-mysql-database-exists?rq=1 – 2013-03-06 10:54:21
问题不在于程序中的实现,如果在程序中声明 – Petr 2013-03-06 12:58:09