【发布时间】:2021-05-15 22:18:51
【问题描述】:
我想用两张表做一个简单的数据库。所以我使用这段代码来制作它并填充我的 .csv 数据:
import sqlite3
import pandas as pd
import os
conn = sqlite3.connect("base.db")
c = conn.cursor()
c.execute('''
CREATE TABLE IF NOT EXISTS table_1 (
Name TEXT,
Index INTEGER,
Sample_ID TEXT PRIMARY KEY);
''')
c.execute('''
CREATE TABLE IF NOT EXISTS table_2 (
Other_id TEXT PRIMARY KEY,
info TEXT);
''')
cmd1 = """sqlite3 base.db <<< ".import table_1.csv table_1" """
cmd2 = """sqlite3 base.db <<< ".import table_2.csv table_2" """
rc1 = os.system(cmd1)
rc2 = os.system(cmd2)
conn.commit()
conn.close()
我得到一个带有数据库的文件,但是当我在 DBeaver 中使用这个命令 SELECT COUNT(*) FROM table_2; 时,我得到零计数。此外,.db 文件的大小为 20.5 kB(20480 字节)。
我该如何解决?为什么我的数据库是空的?
我用这个:
- Ubuntu 20.04
- Python 3.8.5
- sqlite3 3.31.1
- DBeaver 21.0.4
【问题讨论】:
-
代码看起来没问题,你能检查一下 DBeaver 是否指向
base.db还看看你是否在 os.系统运行cmd1和cmd2。