我导出(与更新)我现有的我的SQL备份,并通过PHPAdmin导入到另一台PC,但它给出了以下错误信息。我只需要替换备份PC上的现有数据库。有可能做到这一点吗?
"#1068 -定义了多个主键“
谢谢,Mohan K
发布于 2015-02-05 12:26:20
可以,在导出中添加drop table选项,然后在导入时,您的表将被删除并重新创建。这样可以避免主键冲突。
发布于 2015-02-05 12:43:00
要对现有数据库进行大规模替换...
一种选择是删除现有数据库并重新创建它。但要确保您确实想要这样做,并且是在您真正想要在其上执行的MySQL实例上执行:
DROP DATABASE mydb ;
CREATE DATABASE mydb ; 请注意,这可能会影响授予的权限,您可能需要重新授予新数据库的权限。(在CREATE DATABASE语句中,包括默认字符集和排序规则的规范(如果它们与实例变量的设置不同)。)
SQLyog有一个方便的“空数据库”菜单选项,它可以删除数据库中的所有对象,而不必删除数据库并重新创建它。(这可能会影响授予各个数据库对象的权限。)
我不确定phpmyadmin是否有相同的功能。要执行自己的操作,只需查询information_schema表,以标识所有表、视图、过程等。
例如,要生成DROP TABLE语句的列表,可以运行如下查询:
SELECT CONCAT('DROP TABLE `',t.table_schema,'`.`',t.table_name,'` ;') AS stmt
FROM information_schema.tables t
WHERE t.table_schema = 'foo' ;如果表有外键,您可以设置会话的FOREIGN_KEY_CHECKS=0,或者以适当的顺序执行drop语句,等等,然后对其他对象类型重复上述操作:information_schema.routines等。
发布于 2015-10-21 02:35:51
不是删除数据库,而是清空它:
truncate tablename(然后再次添加主键)这样做时,不必再次重新创建所有的表和列。
https://stackoverflow.com/questions/28336162
复制相似问题