通过 pymssql 插入但没有行出现在数据库中
Inserting through pymssql but no rows appear in the database
我是 python 的新手,我正在尝试编写一个将值放入 SQL 数据库的脚本。
它是一个简单的 2 列 table,看起来像这样:
CREATE TABLE [dbo].[pythonInsertTest](
[ID] [int] IDENTITY(1,1) NOT NULL,
[value] [varchar](50) NULL
我尝试从 python 执行 select 查询并且成功了!所以连接或任何类似的东西都不是问题。但是当我使用以下代码插入 table 时:
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 管理器和 select 所述 table 中的所有行,我刚刚添加的行不在那里......但是当我手动通过添加的管理器中的 SQL 查询插入一行。
需要注意的是,它确实通过我的 python 脚本跳过了 "inserted" 的 ID。
有人以前见过这个或知道该怎么做吗?
哈,这个问题我也撞过几次了。据我所知,您缺少提交声明。按照这个example,加一个conn.commit(),希望你会变金。
我是 python 的新手,我正在尝试编写一个将值放入 SQL 数据库的脚本。
它是一个简单的 2 列 table,看起来像这样:
CREATE TABLE [dbo].[pythonInsertTest](
[ID] [int] IDENTITY(1,1) NOT NULL,
[value] [varchar](50) NULL
我尝试从 python 执行 select 查询并且成功了!所以连接或任何类似的东西都不是问题。但是当我使用以下代码插入 table 时:
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 管理器和 select 所述 table 中的所有行,我刚刚添加的行不在那里......但是当我手动通过添加的管理器中的 SQL 查询插入一行。
需要注意的是,它确实通过我的 python 脚本跳过了 "inserted" 的 ID。
有人以前见过这个或知道该怎么做吗?
哈,这个问题我也撞过几次了。据我所知,您缺少提交声明。按照这个example,加一个conn.commit(),希望你会变金。