如何从csv文件插入表的选定列

时间:2014-08-27 11:10:37

标签: mysql sql database

我有一个包含三个列的csv文件 - 用户名,密码和电子邮件。现在,我在某些其他列中有一个包含wp_user,wp_password,wp_email列的表。我的问题是如何将csv文件中的数据插入到我的表中,映射三列并忽略其他列?

1 个答案:

答案 0 :(得分:0)

如果您只是将csv文件导入名为mySourceTable的临时表中,这将起作用:

INSERT INTO myTargetTable (wp_user, wp_password, wp_email)
SELECT username, password, email FROM mySourceTable

EDIT2:

对于mySQL,使用以下命令将数据加载到临时表中:

load data local infile 'source.csv' into table mySourceTable fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(username, password, email)

编辑:

或者,您可以将csv文件用作外部表(对于Oracle。原始问题标记为plsql):

  

对于您的CSV文件,您将创建一个与您的文件匹配的数据库目录   已存在的OS目录并授予您的Oracle用户READ和   WRITE访问它:SQL>创建或替换目录my_data_dir为   ' /我的/数据/目录/&#39 ;;目录已创建。

     

SQL> GRANT读,写ON DIRECTORY my_data_dir TO scott;格兰特   成功了。

然后创建外部表定义

  

创建外部表定义:   CREATE TABLE t1(c1 NUMBER,c2 VARCHAR2(30))   组织外部   (     默认目录     my_data_dir
    访问参数
    (        由换行符字段分隔的记录由','
终止     )
    地点     (        ' report.csv'      )
  );

然后可以在上面的INSERT语句中使用结果表(t1)。

http://www.orafaq.com/wiki/External_table