Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果数据库或表不';不存在_Mysql_Phpmyadmin - Fatal编程技术网

Mysql 如果数据库或表不';不存在

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

我正在使用MySQL数据库将SQL脚本导入phpMyAdmin。我需要检查脚本顶部是否存在数据库,如果不存在则返回

我知道如何检查数据库是否存在:

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--