sqlite - 如何在sqlite导入的csv中设置主键
问题描述
我将下表存储为 csv 文件:
project_number,project_name
1,project_1
2,project_2
3,project_3
我想出了如何导入它并在 sqlite3 数据库中显示其模式,如下所示:
sqlite> .mode csv
sqlite> .import
sqlite> .import test.csv test
sqlite> .schema test
CREATE TABLE test(
"project_number" TEXT,
"project_name" TEXT
);
我现在想将该列设置project_number
为主键并将其设置为整数。我从之前的问题中了解到,通过更改原始表很难做到这一点,因此我尝试创建一个新表并使用、和的组合填充create table
,如此处所示create table as
insert into
select * from
sqlite> create table test_2 (project_name text, project_number primary key);
sqlite> insert into test_2 (select project_name, project_number from test);
Error: near "select": syntax error
但是正如您所看到的,这导致了语法错误,我不明白为什么。如何设置从 csvs 导入的表的主键?
解决方案
您也可以先创建表,然后将数据导入其中。假设 Linux 或 Unix 环境:
sqlite> create table test(project_number integer primary key, project_name text);
sqlite> .mode csv
sqlite> .import '| tail -n +2 test.csv' test
将跳过文件中的第一个标题行并插入其余部分。
推荐阅读
- typescript - 如何在我的 Aurelia HTML 中显示与数组不同的对象?
- android - I/Ads:广告无法加载:1 在我的原生 android 项目中
- node.js - 为什么 NPM 运行测试命令因 npm ERR 而失败!代码生命周期错误?
- c++ - 函数参数的继承类和基类之间的 C++ const * 转换,
- scikit-learn - roc_auc_score, 'roc_auc', 'auc' 的奇怪行为
- linux - /dev/ttyUSB 延迟 15 毫秒
- r - 如何在 R 上对 COVID 进行 MCMC 推理
- python - 如何将 jinja 变量传递给我在 Flask 中创建的模板文件?
- java - 使用 JAVA API 从 Elastic Search Suggest Search 响应中提取源数据
- javascript - 如何在选项卡中呈现反应组件?