通过pymssql插入但数据库中没有出现行
Posted
技术标签:
【中文标题】通过pymssql插入但数据库中没有出现行【英文标题】:Inserting through pymssql but no rows appear in the database 【发布时间】:2015-09-17 13:40:10 【问题描述】:我对 python 很陌生,我正在尝试编写一个将值放入 SQL 数据库的脚本。
它是一个简单的 2 列表,如下所示:
CREATE TABLE [dbo].[pythonInsertTest](
[ID] [int] IDENTITY(1,1) NOT NULL,
[value] [varchar](50) NULL
我尝试从 python 中进行选择查询,并且成功了!所以连接或任何类似的东西都不是问题。但是当我使用以下代码插入表格时:
import pymssql
conn = pymssql.connect(server='XXXX', user='XXXX', password='XXXX', database='XXXX')
cursor = conn.cursor()
cursor.execute("insert into pythonInsertTest(value) OUTPUT INSERTED.ID VALUES('test')")
row = cursor.fetchone()
while row:
print "Inserted Product ID : " +str(row[0])
row = cursor.fetchone()
回复是:
$? && exit 1
Inserted Product ID : 20
Exit status: 0
但是,如果我查看我的 sql 管理器并选择所述表中的所有行,我刚刚添加的行不在那里......但是当我通过管理器中的 SQL 查询手动插入一行时,它添加了。
需要注意的是,它确实跳过了通过我的 python 脚本“插入”的 ID。
有谁见过这个或知道该怎么做?
【问题讨论】:
【参考方案1】:哈,我也曾多次对此表示怀疑。据我所知,您缺少提交声明。按照这个example,添加一个conn.commit(),希望你会很成功。
【讨论】:
以上是关于通过pymssql插入但数据库中没有出现行的主要内容,如果未能解决你的问题,请参考以下文章