如果数据库存在则退出MySQL脚本

时间:2015-01-01 20:06:23

标签: mysql sql scripting

如果数据库不存在以便为开发注入一些初始演示数据,我有一个MySQL脚本我只想使用 。如果确实存在,我只想打破脚本。该脚本以

开头
CREATE DATABASE IF NOT EXISTS `demo-database`;
USE `demo-database`;

如果数据库存在,有没有办法在此处或在create database上方退出,以便它不会运行所有表设置和插入?

2 个答案:

答案 0 :(得分:0)

试试这个。使用INFORMATION_SCHEMA.SCHEMATA检查数据库是否存在

If not exists (SELECT 1 
               FROM   INFORMATION_SCHEMA.SCHEMATA
               WHERE  SCHEMA_NAME = 'demo-database')

CREATE DATABASE `demo-database`
.....

答案 1 :(得分:0)

我现在所相信的是,带有if / else / endif的构造只能在存储程序中使用(另请参见https://dev.mysql.com/doc/refman/8.0/en/if.html

除了创建包含代码的存储过程外,我没有其他解决方法。在我的情况下,我还有一些代码只能在测试环境中执行。我也只在测试中创建存储过程。