如果数据库不存在以便为开发注入一些初始演示数据,我有一个MySQL脚本我只想使用 。如果确实存在,我只想打破脚本。该脚本以
开头CREATE DATABASE IF NOT EXISTS `demo-database`;
USE `demo-database`;
如果数据库存在,有没有办法在此处或在create database上方退出,以便它不会运行所有表设置和插入?
答案 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)
除了创建包含代码的存储过程外,我没有其他解决方法。在我的情况下,我还有一些代码只能在测试环境中执行。我也只在测试中创建存储过程。