为自动增量添加序列时python postgresql插入错误

为自动增量添加序列时python postgresql插入错误,python,postgresql,insert,syntax-error,sequence,Python,Postgresql,Insert,Syntax Error,Sequence,下面主要是依赖的一切 authorname="samuel" bugid=1222 filename="mila.txt" conn = None; cursor = None; conn = pg8000.connect(database="postgres", user="postgres", password="root", host="localhost") cursor = conn.cursor() def createTables(): cursor.execute("C

下面主要是依赖的一切

authorname="samuel"
bugid=1222
filename="mila.txt"
conn = None;
cursor = None;
conn = pg8000.connect(database="postgres", user="postgres", password="root", host="localhost")
cursor = conn.cursor()

def createTables():
    cursor.execute("CREATE SEQUENCE FILE_id_seq")
    cursor.execute("CREATE TABLE FileTable(ID INT UNIQUE NOT NULL DEFAULT NEXTVAL('FILE_id_seq'), filename varchar(250) NOT null UNIQUE )")
    cursor.execute("CREATE SEQUENCE Author_id_seq")

    conn.commit()
    return

def insert_filename(filename1):
    cursor.execute('INSERT INTO FileTable (filename) VALUES (%s)', (filename1))
    conn.commit()
    return

insert_filename(filename)
我在插入时出错

ps = cache['ps'][key]

KeyError: ((705, 705, 705, 705, 705), 'INSERT INTO FileTable (filename) VALUES (%s)')

g8000.ProgrammingError: (b'ERROR', b'42P18', b'could not determine data type of parameter $2
注意:对于串行数据类型,我有相同的错误。我已经更新了代码

仍然不确定705705705705705元组来自哪里。。。与缓存相关的代码不在代码主体中

然而,有几件事

永远不会调用createTables。 filename1不是要执行的有效参数。那不是一个元组。对于单项元组,您需要添加一个尾随逗号,即filename1,。
当我添加了对createTables的调用并将参数更改为带有尾随逗号时,使用您的insert_文件名代码,自动增量对我来说很好。

filename1的值是多少?看起来可能是错误文本中的元组705705705705705…好的,所以不清楚705705705705是从哪里来的。。。调用insert\u filename的行是什么样子的?filename=tkk.txt insert\u filenamefilename实际上,当我插入两列时,它工作正常,但我希望我的第一列ID自动递增。提前谢谢嗯…还是不知道705元组是怎么来的。。。在insert_文件名方面,缓存dict在哪里起作用?似乎文章中缺少了一些代码,这些代码可能是您看到的行为的关键,因为在未指定时,序列通常会在默认规范下自动递增。。。