我创建了下表
CREATE TABLE mytable (database_id SERIAL PRIMARY KEY,contentCHAR(150));
但我无法使用默认选项插入行,因此database_id将自动递增
import psycopg2
conn = psycopg2.connect(database="mydatabase", user="Username", ")
information= 'Lorem ipsum dolor sit amet. '
cur.execute("INSERT INTO mytable (database_id, content) VALUES (default, 'information');")
cur.execute("INSERT INTO mytable (database_id, content) VALUES (%s, %s)", (default , "information"))
conn.commit()
第一个选项采用'default'参数而不是内容而另一个采用相反的
答案 0 :(得分:1)
请避免在database_id上放置任何参数,以便自动生成:
import psycopg2
conn = psycopg2.connect(database="mydatabase", user="Username")
information= 'Lorem ipsum dolor sit amet. '
cur.execute("INSERT INTO mytable (content) VALUES (%s)", (information))
conn.commit()
答案 1 :(得分:0)
为什么使用default
。根据{{1}}:
PostgreSQL的数据类型是smallserial,serial和bigserial;这些不是真正的类型,而只是创建唯一标识符列的标记方便。这些类似于其他一些数据库支持的AUTO_INCREMENT属性。
所以试试吧。
postgresql