我有一行在 id 列 350268180138164200 中有一个相当大的值。当我尝试选择它时
select * from my_table where id=350268180138164200
我什么也没得到,但是当我插入一行 id=222 时,我可以毫无问题地选择它。
select *, typeof(id) from my_table
表明 id 的数据类型是整数。
更新:我通过改变我的插入代码摆脱了麻烦,这就是它的样子:
conn = lite.connect('my.sqlite')
with conn:
cur = conn.cursor()
cur.execute("INSERT INTO MY_TABLE (ID) "
"VALUES( :id)",
{ 'id' : -here is smth of type = long- } )
conn.commit()
现在我已将其更改为看起来像(并且选择正在工作):
conn = lite.connect('my.sqlite')
with conn:
cur = conn.cursor()
cur.execute("INSERT INTO MY_TABLE (ID) "
"VALUES( CAST(:id AS INTERGER))",
{ 'id' : -here is smth of type = long- } )
conn.commit()
所以我怀疑 python sqlite 模块(或 sqlite lib 本身)正在做一些演员,这符合我的目标。或者我不知道。