gpt4 book ai didi

sql - 简单的 SQLite 表/导入问题

转载 作者:IT王子 更新时间:2023-10-29 06:22:08 25 4
gpt4 key购买 nike

我有一个简单的 SQL 问题。我想制作一个 3 列数据库,我有以下代码:

sqlite3 meshdb.db "create table t1 (t1key INTEGER PRIMARY KEY, prideID, pubmedID);"

当我尝试导入一个包含两列(prideID 和 pubmedID)的简单 csv 文件时,我收到“预期有 3 列数据但发现了 2 列”错误。我希望 t1key 是一个整数,并在添加新字段时自动计数。我是否必须将 NOT NULL 放在 PRIMARY KEY 前面才能使其工作?

最佳答案

.import 不支持 reshape 输入(设置分隔符除外)。您需要将 CSV 文件导入临时表并将其插入到真实表中。这是一个示例 session :

$ cat a.csv 
1,2
3,4
5,6
$ sqlite3 a.db
SQLite version 3.6.23.1
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table foo(id integer primary key,x,y);
sqlite> create temp table footmp(x,y);
sqlite> .separator ,
sqlite> .import a.csv footmp
sqlite> select * from footmp;
1,2
3,4
5,6
sqlite> insert into foo(x,y) select * from footmp;
sqlite> select * from foo;
1,1,2
2,3,4
3,5,6
sqlite> drop table footmp;

你看到ID被统计了。这是因为类型为 INTEGER PRIMARY KEY 的列被视为内部 ROWID 的别名 - 它始终是唯一的升序数字。

关于sql - 简单的 SQLite 表/导入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3260825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com