当前位置:  开发笔记 > 数据库 > 正文

简单的SQL Lite表/导入问题

如何解决《简单的SQLLite表/导入问题》经验,为你挑选了1个好方法。

我有一个简单的SQL问题.我想创建一个3列数据库,我有以下代码:

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

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



1> Nordic Mainf..:

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

$ 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的别名 - 它始终是唯一的升序数字.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有