首页 > 解决方案 > 使用 sqlite3 和 python 按索引将表拆分为 2 个新表

问题描述

我有一个 database.db 文件,它有一个和你一样的 table1。请注意,索引只是代码而不是数字:

id    | item | price
-------------
 45f5 | book | 20  
 25h8 | copy | 30   
 as34 | pen  | 10 
 t674 | key  | 15 
 5h6f | ring | 25 
 67yu | mug  | 40 

我想在我的 dababase.db 名称 table2 和 table3 中创建两个额外的表,其中一个包含前 4 行,另一个包含最后 2 行:

表2

id    | item | price
-------------
 45f5 | book | 20  
 25h8 | copy | 30   
 as34 | pen  | 10 
 t674 | key  | 15 

表3

id    | item | price
-------------
 5h6f | ring | 25 
 67yu | mug  | 40 

我一直在尝试使用 CREATE TABLE,但是 table1 中的列太多,无法一一写入。你会如何解决这个问题?谢谢!

"CREATE TABLE table2 AS SELECT * FROM table1 WHERE condition"

标签: pythonsqlsqlite

解决方案


要创建表,您必须指定列名和类型, SELECT * FROM已经存在的将不起作用。见https://www.w3schools.com/sql/sql_create_table.asp

您可以尝试根据已经存在的表创建这样的表,例如:

INSERT INTO table2  SELECT * FROM table1 WHERE condition; 

尝试在没有 WHERE 的情况下使用上述语句来检查它是否有效,因为我现在无法访问 SQLite 数据库来检查它。


推荐阅读