在 sqlite3 中创建表时出错
Posted
技术标签:
【中文标题】在 sqlite3 中创建表时出错【英文标题】:Error with create tables in sqlite3 【发布时间】:2017-06-06 19:41:15 【问题描述】:我正在 python3 中学习 sqlite3。我使用语法在表中添加了 4 列
c.execute("CREATE table raman(ATOMIC NUMBER INT, SYMBOL TEXT, ROW INT , COLUMN INT)")
我想为它们插入值,所以我正在写
c.execute("INSERT INTO raman VALUES(1,'H',1,'1')");
在此之后,如果我打印表格,它不会向我显示插入的值。我正在使用此命令打印 print c.execute("SELECT * FROM SQLITE_master type='table'").fetchall()
【问题讨论】:
插入后请确保:[your connection object here].commit()
这听起来不像是错误,而是意外的结果。
连接对象的意思是??我正在编辑器中写作。
【参考方案1】:
完整的(最小的)序列是这样的。
>>> conn = sqlite3.connect(':memory:')
>>> c = conn.cursor()
>>> c.execute("CREATE table raman(ATOMIC NUMBER INT, SYMBOL TEXT, ROW INT , COLUMN INT)")
<sqlite3.Cursor object at 0x000000000296E490>
>>> c.execute("INSERT INTO raman VALUES(1,'H',1,'1')");
<sqlite3.Cursor object at 0x000000000296E490>
>>> conn.commit()
>>> for row in c.execute('SELECT * FROM raman'):
... row
...
(1, 'H', 1, 1)
在您发出 commit
之前,这些值不会(或不一定)出现在表格中。
【讨论】:
我正在做的是,我制作了单独的 .py 文件来插入值。所以我有。 import sqlite conn = sqlite3.connect('raman.db') c = conn.cursor() c.execute("CREATE table raman(ATOMIC NUMBER INT, SYMBOL TEXT, ROW INT, COLUMN INT)") c.execute("插入拉曼值(1,'H',1,'1')"); conn.commit() 当我打印这个时,它会告诉我这个:[] 我在终端尝试过,它仍然在打印 []。但我想看看我插入的值 我不知道可能出了什么问题。我已经编辑了答案中的代码以显示表格中的内容。 你到底在打印什么?以上是关于在 sqlite3 中创建表时出错的主要内容,如果未能解决你的问题,请参考以下文章