Sqlite3将数据存储为文本而不是整数

时间:2017-12-07 07:53:51

标签: python sqlite

我在Sqlite3中创建了一个表,如下所示:

c:/Programdata/Anaconda3/lib/site-packages

"年龄"被定义为整数。但是当我在DB Browser for SQLite中执行此查询时:

def create_table(self):
    """create a database table if it does not exist already"""
    self.cur.execute('''CREATE TABLE IF NOT EXISTS jobs(title text, \
                                                        job_id integer PRIMARY KEY, 
                                                        age integer)''')

我收到了这个回复:

Pragma table_info(jobs);

"年龄"是数据类型文本?!?!

可能的原因是:

  • 当插入一行数据时,插入到age列中的数据是文本的,但如果是这种情况,那么它还有一个问题,sqlite3在插入之前是不是检查了数据类型?

1 个答案:

答案 0 :(得分:1)

如果删除表并重新创建它,问题是否仍然存在?由于只有在它不存在的情况下才创建它,所以它可能是旧版本的工件。

结果如我所料:

0|title|text|0||0
1|job_id|integer|0||1
2|age|integer|0||0