更新MySql中的现有行并处理重复的键

时间:2013-05-17 16:35:43

标签: mysql database dataset foreign-keys on-duplicate-key

我有一个MySql数据库,其中包含有关应用程序用户的数据。此应用程序已投入生产,但每天都会增加改进。我所做的最后一项改进改变了数据收集和插入数据库的方式。

为了更清楚,我的数据库由5个包含用户数据的表和1个表通过外键关联所有表组成。这5个外键一起形成了我对这个“主表”的唯一索引。

问题是其中一个包含用户数据的表改变了它的格式,我想删除比我在我的应用程序上做的修改更早的所有数据(仅从这个表中,我需要保持不变的其他数据) 。但是,这个数据集在主表中有外键,我不能只将这些行放在主表上,因为我所拥有的其他信息很重要。我试图在具体的情况下更改此表的外键值,但显然,我遇到了与重复索引相关的问题。

在互联网上阅读,我找到了一个解决我的问题的方法,使用“插入...重复密钥更新...”,但我没有插入数据,只是更新它。我有一个关于如何在PHP上创建程序来更新我的数据库的想法,但是还有另一种更简单的解决方案吗?是否可以仅使用MySql语法来避免这些问题?

1 个答案:

答案 0 :(得分:0)