psycopg2 错误说我在插入文本/字符串时插入整数
psycopg2 error say i am inserting integer when i am inserting text/ string
当我 运行 来自我的 python 应用程序的查询时
DB.execute("insert into matches values(%s ,%s, %s, %s)", (player1, player2, player1_result, player2_result,))
我收到这个错误
psycopg2.DataError: invalid input syntax for integer: "win"
LINE 1: insert into matches values(689 ,690, 'win', 'lose')
^
player1、player2、player1_result 和 player2_result 是此处包含函数的参数
reportMatch(id1, id2, "win", "lose")
这里是 table 定义
create table matches ( player1 serial references players, player2 serial references players, player1_result text, player2_result text, match_ID serial primary key);
您的SQL查询是:
insert into matches
values(%s ,%s, %s, %s)
(然后是值)
这是错误的形式,因为插入顺序取决于列的声明顺序。
使用 insert
时,您应该明确列出列,因此 SQL 看起来像:
insert into matches(player1, player2, player1_result, player2_result)
values(%s ,%s, %s, %s)
在您的陈述中,这是:
DB.execute("insert into matches(player1, player2, player1_result, player2_result) values(%s ,%s, %s, %s)", (player1, player2, player1_result, player2_result))
当我 运行 来自我的 python 应用程序的查询时
DB.execute("insert into matches values(%s ,%s, %s, %s)", (player1, player2, player1_result, player2_result,))
我收到这个错误
psycopg2.DataError: invalid input syntax for integer: "win"
LINE 1: insert into matches values(689 ,690, 'win', 'lose')
^
player1、player2、player1_result 和 player2_result 是此处包含函数的参数
reportMatch(id1, id2, "win", "lose")
这里是 table 定义
create table matches ( player1 serial references players, player2 serial references players, player1_result text, player2_result text, match_ID serial primary key);
您的SQL查询是:
insert into matches
values(%s ,%s, %s, %s)
(然后是值)
这是错误的形式,因为插入顺序取决于列的声明顺序。
使用 insert
时,您应该明确列出列,因此 SQL 看起来像:
insert into matches(player1, player2, player1_result, player2_result)
values(%s ,%s, %s, %s)
在您的陈述中,这是:
DB.execute("insert into matches(player1, player2, player1_result, player2_result) values(%s ,%s, %s, %s)", (player1, player2, player1_result, player2_result))