【问题标题】:Error with create tables in sqlite3在 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()
  • 这听起来不像是错误,而是意外的结果。
  • 连接对象的意思是??我正在编辑器中写作。

标签: python sqlite


【解决方案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()
  • 当我打印这个时,它会告诉我这个:[]
  • 我在终端尝试过,它仍然在打印 []。但我想看看我插入的值
  • 我不知道可能出了什么问题。我已经编辑了答案中的代码以显示表格中的内容。
  • 你到底在打印什么?
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 2014-03-17
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
相关资源
最近更新 更多