【发布时间】:2011-06-28 14:43:11
【问题描述】:
我是数据库初学者,在学习过程中遇到了一个问题。
我现在要通过 phpMyAdmin 导入一个文本文件来更新我的数据库的一个表。 除了处理具有相同 customer_ID 的行之外,一切都很好。
该行有一个名为“customer_ID”的字段,我不能将其设为主键,因为用于填充数据库的初始文本文件包含单个 customer_ID 的多行,因此数据库必须允许一个用户 ID 多行.
我用导入文本文件填充了数据库,没有错误。但是,现在我需要用更新文本文件更新数据库,更新文本文件中的 customer_id 都已经存在(填充)在数据库中,所以如果我用这个更新的文本文件更新数据库(通过“导入” PhpMyAdmin 中的函数),具有相同 customer_ID 的现有行将不会被更新,但会创建另一个具有相同 customer_ID 的行,这不是我想要的。
我认为这是一个两难的问题,如果我可以将 customer_id 设置为主键,更新过程将完美运行,但由于我需要在数据库填充过程中允许 customer_id 出现在多行中,所以我无法制作customer_id 一个主键。
请原谅这个琐碎的问题。不知道专家是否可以给我一些建议或一些相关的阅读资料?提前感谢您的帮助。
【问题讨论】:
-
在进行更新之前会删除所有行吗?还是你想保留它们?
-
@paul,是的,我必须保留它们,这是一个充满客户详细信息的数据库。它在每个月的 1 日用初始文本文件填充,然后在月中,我需要用一个小得多的更新文本文件来更新它。
-
您说“现在将更新具有相同 customer_ID 的现有行,但将创建具有相同 customer_ID 的另一行”,但我认为这不会发生。如果您正在插入,则会获得新行,如果您正在更新,则不会获得新行,但旧行会被更改。
-
抱歉打错了!应该是“不会更新”。
标签: mysql sql database phpmyadmin