通过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插入但数据库中没有出现行的主要内容,如果未能解决你的问题,请参考以下文章

如何使用pymssql python插入但忽略相同的日期标签

如何在字段中插入带有字符[']的表(pymssql)

如何在列表pymssql中循环插入值?

如何使用 pymssql 创建多个连接?

pymssql 不返回结果数据

python中pymssql如何向sql server插入数据 插入的值可以用变量替换