Phpmyadmin - 将新列导入现有记录
Posted
技术标签:
【中文标题】Phpmyadmin - 将新列导入现有记录【英文标题】:Phpmyadmin - import new column to existing records 【发布时间】:2011-04-09 04:45:39 【问题描述】:我已经在 phpmyadmin 中有一个包含用户记录的表。每个用户都有一个唯一的准入号码。我现在想在此表中添加一个新列,并且想知道如何仅使用录取编号和新数据来导入此新列的数据。
这可能吗?我有一个 CSV,但无法找到在不覆盖任何现有记录的情况下导入数据的最佳方法。
谢谢。
【问题讨论】:
CSV 没有我想的唯一 ID? 您有 CSV 文件的样本吗? 【参考方案1】:据我所知,这是不可能的。 phpMyAdmin 的导入功能仅适用于整行。
您可以编写一个小的 PHP 脚本,使用 fgetcsv()
打开 CSV 文件,遍历每一行并为每条记录创建一个 UPDATE 语句:
UPDATE tablename SET new_column = "new_value" WHERE admission_number = "number"
然后您可以输出并复制+粘贴命令,或者直接在脚本中执行它们。
【讨论】:
啊,谢谢,我不认为我的 phpmyadmin 可以做到。我会用php。【参考方案2】:如果您只想使用 CSV 来执行此操作,您可以执行以下步骤。
-
在文本编辑器中,为最终表格(包括您的新列)的所有列名创建一个逗号分隔列表。这对于导入新数据很有用。
使用 phpmyadmin 将新列添加到表中
以 csv 格式导出当前表格,并在 Excel 中按录取编号排序
在您的新数据 CSV 中,按录取编号排序
将新数据中的列复制到导出的 CSV 文件中并保存以便重新导入。
备份您的用户表(导出为 CSV)
截断表的内容(操作、截断)
导入更新后的 CSV
可选/推荐:当您将 CSV 导入 phpmyadmin 时,使用列名选项来指定您正在使用的列,以逗号分隔(无空格)。
假设: 1. 您正在使用 Excel / OpenOffice 等电子表格打开 csv 文件。
有什么问题吗? 再次截断表并导入sql备份文件。
【讨论】:
以上是关于Phpmyadmin - 将新列导入现有记录的主要内容,如果未能解决你的问题,请参考以下文章
sql [ALTER TABLE ADD COLUMN]将新列添加到现有表#SQL
将新列添加到现有表中并使用 PL/SQL 中游标中的值更新它们