相关疑难解决方法(0)

如何将CSV文件导入MySQL表

我有一个来自客户端的非标准化事件日记CSV,我正在尝试将其加载到MySQL表中,以便我可以重构为一种理智的格式.我创建了一个名为"CSVImport"的表,它为CSV文件的每一列都有一个字段.CSV包含99列,因此这本身就是一项非常艰巨的任务:

CREATE TABLE 'CSVImport' (id INT);
ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);
...
ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);
ALTER TABLE CSVImport Date50 ADD COLUMN Date50 VARCHAR(256);
Run Code Online (Sandbox Code Playgroud)

表中没有约束,并且所有字段都包含VARCHAR(256)值,但包含计数(由INT表示),是/否(由BIT表示),价格(由DECIMAL表示)和文本blurbs(由TEXT代表).

我试图将数据加载到文件中:

LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;
Query OK, 2023 rows affected, 65535 warnings (0.08 sec)
Records: 2023  Deleted: 0  Skipped: 0  Warnings: 198256
SELECT * FROM CSVImport;
| NULL             | NULL        | NULL …
Run Code Online (Sandbox Code Playgroud)

mysql csv load-data-infile

284
推荐指数
11
解决办法
91万
查看次数

将SQLite3迁移到MySQL的快速简便方法?

有人知道将SQLite3数据库迁移到MySQL的快捷方法吗?

mysql migration sqlite

216
推荐指数
14
解决办法
26万
查看次数

将自动增量主键插入现有表

我试图改变一个没有主键和auto_increment列的表.我知道如何添加主键列,但我想知道是否可以自动将数据插入主键列(我已经在DB中有500行并且想要给它们id,但我不想手动执行) .有什么想法吗?非常感谢.

mysql primary-key

147
推荐指数
5
解决办法
20万
查看次数

MYSQL使用LOAD DATA INFILE从csv导入数据

我将一些包含20000行的数据从CSV文件导入到Mysql中.

CSV中的列与MySQL表的列的顺序不同.如何自动分配与Mysql表列对应的列?

当我执行

LOAD DATA INFILE'abc.csv' INTO TABLE abc
Run Code Online (Sandbox Code Playgroud)

此查询将所有数据添加到第一列.

请建议将数据导入Mysql的自动语法.

mysql csv import load-data-infile

99
推荐指数
5
解决办法
36万
查看次数

使用LOAD DATA INFILE导入MySQL表时如何跳过CSV文件中的列?

我有一个包含11列的CSV文件,我有一个包含9列的MySQL表.

CSV文件如下所示:

col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11
Run Code Online (Sandbox Code Playgroud)

和MySQL表看起来像:

col1, col2, col3, col4, col5, col6, col7, col8, col9
Run Code Online (Sandbox Code Playgroud)

我需要将CSV文件的1-8列直接映射到MySQL表的前8列.然后,我需要跳过CSV文件中的下两列,然后将CSV文件的第11列映射到MySQL表的第9列.

目前我正在使用以下SQL命令:

LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)

但是上面的代码将CSV文件的前9列映射到MySQL表中的9列.

mysql csv load-data-infile

54
推荐指数
2
解决办法
7万
查看次数

使用ZF2和Doctrine2将SQL Server表转换为MySQL

我为我的一个客户开发了一个应用程序.他已经有了一个.所以我需要将他的实际数据库(SQL Server)转换为新的数据库(MySQL).

SQL Server的某些表有超过10.000.000条记录.当我开始开发这个转换器时,我已经开始使用一些带有一些记录的表,所以我找到所有记录并保存到我的新MySQL数据库中.我将向您展示一些代码以便更好地理解(这只是一个例子)

<?php

namespace Converter\Model;

class PostConverter extends AbstractConverter 
{

    public function convert() 
    {
        // this is the default connection, it is a mysql database (new application)
        $em = $this->getEntityManager();
        // this return an alternative connection to the sqlserver database (actual application)
        $emAlternative = $this->getEntityManagerAlternative();

        // instance of Converter\Repository\Post
        $repository = $emAlternative->getRepository('Converter\Entity\Post');

        $posts = $repository->findAll();

        foreach ($posts as $post)
            $post = new Post();
            $post->setTitle($object->getTitle());
            $em->persist($post);
        }  

        $em->flush();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在让我们假设Post表有超过10.000.000条记录.我不能只找到所有并迭代它.我会离开RAM.所以我做了这样的事情.

存储库类:

<?php

namespace Converter\Repository;

class Posts extends \Doctrine\ORM\EntityRepository …
Run Code Online (Sandbox Code Playgroud)

php mysql zend-framework doctrine-orm

14
推荐指数
1
解决办法
332
查看次数

在Pandas中连接两个大型数据集的最佳方法

我正在从两个需要加入的不同数据库中下载两个数据集.当我将它们存储为CSV时,它们中的每一个分别约为500MB.分别适合内存,但当我加载两个时,我有时会得到一个内存错误.当我尝试将它们与熊猫合并时,我肯定会遇到麻烦.

对它们进行外连接的最佳方法是什么,这样我就不会出现内存错误?我手头没有任何数据库服务器,但如果有帮助,我可以在我的计算机上安装任何类型的开源软件.理想情况下,我仍然只想在熊猫中解决它,但不确定这是否可行.

澄清一下:合并是指外连接.每个表都有两行:产品和版本.我想检查左表中的产品和版本,仅右表和两个表.我做了一个

pd.merge(df1,df2,left_on=['product','version'],right_on=['product','version'], how='outer')
Run Code Online (Sandbox Code Playgroud)

python memory-management pandas

9
推荐指数
1
解决办法
1万
查看次数