【问题标题】:How to import data from CSV file to database [duplicate]如何将数据从 CSV 文件导入数据库 [重复]
【发布时间】:2017-07-19 12:43:58
【问题描述】:

我有一个 csv 文件,它有 13 列,这些列中的每一列都有大量数据,我需要能够将这些数据从 .csv 文件中提取到 mysql 数据库中。

首先,我需要帮助为 csv 文件的每一列创建特定的表,因为我对 mysql 很陌生,我不太确定要为每个表分配哪些属性。

这是csv文件的结构...

pid、start_time、end_time、epoch_start、epoch_end、complete_title、media_type、masterband、service、brand_pid、is_clip、类别、标签

列下的数据 p00547jm (pid), 1003394820 (start_time), 1003999620 (end_time), 2001-10-18T08:47:00 (epoch_start), 2001-10-25T08:47:00 (epoch_end), in_our_time:_democracy (complete_title), 音频 ( media_type), bbc_radio_four (masterband), bbc_radio_four (service), b006qykl (brand_pid),0 (is_clip), [9100005:1:factual.9200041:2:arts_culture_and_the_media.9200055:2:history] ​​(类别), [democracy.history .philosophy.plato.ancient_greece](标签)

【问题讨论】:

标签: php html mysql import-from-csv


【解决方案1】:

先创建表,然后使用

LOAD DATA LOCAL INFILE '/home/dummy/dummy.csv' INTO TABLE tablename  
FIELDS TERMINATED BY ',';

将文件中的数据插入到新表中。

另外,请确保您在登录 MySQL 时使用

mysql -uusername -ppassword --local-infile 

至于建表:

我们可以提供语法,但我们无法为您编写整个查询。您可以自己尝试一下,因为您有必要的数据。

create table table_name (col1 datatype(size) NOT NULL primary key, 
col1......);

【讨论】:

  • 嗨,克里希纳,感谢您的回复!只是想知道,是否只需要创建一个表,因为我有 13 个字段,所以我假设我需要为每个字段创建一个单独的表......或者只需要创建一个表,这就是我苦苦挣扎的地方。 ..
  • 这能解决您的问题吗?如果是这样,您可以通过接受它作为您的答案来关闭它
  • @Jason-D 取决于您在数据库中需要什么。为此,您可以创建一个包含 13 个列名的表,然后进行插入
  • 谢谢,我先创建一个13列的表,然后插入数据
  • 太棒了!!!完成后,接受这个作为你的答案来结束这个话题
【解决方案2】:

这将生成创建表查询 $1 将成为表名

[Create mysql table directly from CSV file using the CSV Storage engine?

#!/bin/sh
# pass in the file name as an argument: ./mktable filename.csv
echo "create table $1 ( "
head -1 $1 | sed -e 's/,/ varchar(255),\n/g'
echo " varchar(255) );"

然后你可以读取文件并将你的插入逻辑放在while循环中

[Import CSV into MYSQL but ignore header row //打开csv文件进行读取 $handle = fopen($file_path, 'r');

// read the first line and ignore it
fgets($handle); 

while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
// do your thing
}

【讨论】:

    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2021-10-20
    相关资源
    最近更新 更多