我将下表存储为 csv 文件:
project_number,project_name
1,project_1
2,project_2
3,project_3
Run Code Online (Sandbox Code Playgroud)
我想出了如何导入它并在 sqlite3 数据库中显示其架构,如下所示:
sqlite> .mode csv
sqlite> .import
sqlite> .import test.csv test
sqlite> .schema test
CREATE TABLE test(
"project_number" TEXT,
"project_name" TEXT
);
Run Code Online (Sandbox Code Playgroud)
我现在想将该列设置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
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,这导致了语法错误,我不明白为什么。如何为从 csv 导入的表设置主键?
您也可以先创建表,然后再导入数据。假设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
Run Code Online (Sandbox Code Playgroud)
将跳过文件中的第一个标题行并插入其余的。
| 归档时间: |
|
| 查看次数: |
1273 次 |
| 最近记录: |