Mysql 如果数据库或表不';不存在
我正在使用MySQL数据库将SQL脚本导入phpMyAdmin。我需要检查脚本顶部是否存在数据库,如果不存在则返回 我知道如何检查数据库是否存在:Mysql 如果数据库或表不';不存在,mysql,phpmyadmin,Mysql,Phpmyadmin,我正在使用MySQL数据库将SQL脚本导入phpMyAdmin。我需要检查脚本顶部是否存在数据库,如果不存在则返回 我知道如何检查数据库是否存在: SELECT EXISTS(SELECT * FROM information_schema.schemata WHERE schema_name = 'MyDatabase') 但我不知道当这个值为零时如何返回。我试过这个: IF NOT (SELECT EXISTS(SELECT * FROM information_schema.schema
SELECT EXISTS(SELECT * FROM information_schema.schemata WHERE schema_name = 'MyDatabase')
但我不知道当这个值为零时如何返回。我试过这个:
IF NOT (SELECT EXISTS(SELECT * FROM information_schema.schemata WHERE schema_name = 'MyDatabase')) THEN
BEGIN
RETURN
END;
END IF;
这将抛出错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT (SELECT EXISTS(SELECT * FROM information_schema.schemata WHERE ' at line 1
我还需要检查该数据库中是否存在表,如果不存在,则返回。同样,我知道如何检查表是否存在:
SELECT EXISTS(SELECT * FROM information_schema.tables WHERE table_schema = 'MyDatabase' AND table_name = 'MyTable')
但此时我不知道如何退出脚本
编辑
我发现我可以在脚本的顶部放一个USE
语句,如果表不存在,它就会抛出一个错误:
USE `MyDatabase`;
这已经足够好了,但如果知道如何使用条件语句来实现这一点,那就太好了。您可以将其与if语句一起使用
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
比如:
IF SCHEMA_NAME = '' THEN
--do this--
ELSE
-do this--