更新整个数据库,避免外键和主键约束错误

时间:2015-05-11 06:21:30

标签: php mysql database

我在客户服务器上有一个正在运行的数据库,在我的PC上有生产数据库。像往常一样,生产数据库随着我开发的新字段和记录而更新。

我需要将整个生产数据库(包括结构和记录)替换为客户的服务器现有数据库。

当我导出生产数据库并尝试在cutomer的服务器上导入时,我得到了

Duplicate entry '1' for key 'PRIMARY'

这是预期的:如果存在主要的1 ID,则PHPmyAdmin避免替换它是正常的。所以我尝试TRUNCATE或DROP这个表,以便再次完全重新导入它。当我尝试这样做时,会出现这个(也是预期的)错误,避免我删除FK字段:

#1701 - Cannot truncate a table referenced in a foreign key
constraint (`waisap_db`.`ws_stdmessages`, CONSTRAINT
`ws_stdmessages_ibfk_1` FOREIGN KEY (`sm_fk_us_id`) REFERENCES
`waisap_db`.`ws_users` (`us_id`))

我怎样才能更新整个数据库?导出开发DB时我应该选择哪个选项?

1 个答案:

答案 0 :(得分:0)

你可以SET FOREIGN_KEY_CHECKS = 0;在导入之前,然后将其设置回1以避免外键约束错误。