小编ily*_*a_i的帖子

读入大 csv 文件,使用 uniVocity 解析器验证和写出

我需要解析一个大的 csv 文件 (2gb)。必须验证这些值,必须删除包含“坏”字段的行,并且应该输出仅包含有效行的新文件。

我选择了 uniVocity 解析器库来做到这一点。请帮助我了解这个库是否非常适合该任务以及应该使用什么方法。

  1. 鉴于文件大小,在 uniVocity 中组织 read->validate->write 的最佳方法是什么?一次读取所有行还是使用迭代器样式?解析和验证的行在写入文件之前应该存储在哪里?

  2. Univocity 有没有办法通过索引访问行的值?像 row.getValue(3) 之类的东西?

csv validation parsing

3
推荐指数
1
解决办法
2528
查看次数

外键列允许插入不在引用列中的值

我要表:

CREATE TABLE `artist` (
    `name`  TEXT NOT NULL,
    `gender`    TEXT NOT NULL,
    `city`  TEXT NOT NULL,
    PRIMARY KEY(name)
);
Run Code Online (Sandbox Code Playgroud)

create table artwork(
    title text,
    location text,
    artist text,
    primary key (title, artist),
    foreign key (artist) references artist(name)
    );
Run Code Online (Sandbox Code Playgroud)

'artwork'表中的'artist'列允许我插入不在引用列中的数据.

FOREIGN KEY约束还可以防止将无效数据插入到外键列中,因为它必须是它指向的表中包含的值之一.(c)W3school

我做错了吗?

sql sqlite foreign-keys

2
推荐指数
1
解决办法
978
查看次数

标签 统计

csv ×1

foreign-keys ×1

parsing ×1

sql ×1

sqlite ×1

validation ×1