我想将一堆数据库从服务器1复制到服务器2,并且我想删除服务器2上与导入的数据库冲突的任何数据库,然后导入数据库。
我用它来导入:
mysql -u root -p[password] < a_bunch_of_dbs.sql
我使用 phpMyAdmin 执行了多次导出,但它们完全无法使用。
问题是 phpMyAdmin 将放置:
DROP DATABASE `database1`;
(它会导致错误 #1008 - 无法删除数据库“database1”;数据库不存在)
或者:
CREATE DATABASE `database1`;
(它会导致错误#1007 - 无法创建数据库“database1”;数据库存在)
但不是:
DROP DATABASE IF EXISTS `database`;
CREATE DATABASE IF NOT EXISTS `database1`;
(显然“如果不存在”是多余的,但我喜欢它以保证)
因此,为了解决这个问题,我要么需要一些命令行选项或者我需要找出 phpmyadmin 创建查询字符串的位置并向 DROP TABLE 选项添加“IF EXISTS”,这将解决一切。
有什么想法吗? 谢谢。
最佳答案
利用 MySQL Backup and Restore tools在 dbForge Studio for MySQL 。打开选项“在 DROP 语句中包含 IF EXISTS”,您将得到如下脚本:
--
-- Definition for database database1
--
DROP DATABASE IF EXISTS database1;
CREATE DATABASE database1
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
--
-- Set default database
--
USE database1;
--
-- Definition for table dept
--
CREATE TABLE dept (
id INT(11) NOT NULL AUTO_INCREMENT,
dept_name VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 2
AVG_ROW_LENGTH = 16384
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
支持命令行。
关于php - 如何使用 'DROP TABLE IF EXISTS'导入多数据库MySQLdump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7722045/