我尝试了如下的批量插入。关于执行,它告诉
{"error":{"name":"UnexpectedError","code":10000,"message":"(psycopg2.errors.NotNullViolation) null value in column \"id\" violates not-null constraint\nDETAIL: Failing row c
但是,我的数据库又没有列id。
我将主键设置为user_label
book_label
我如何确定PrimaryKey约束的设置,以便不必将ID应用于批量插入。
记录批量插入不需要我们为插入自动私有生成主ID,对吗?
这是我的工作:
def setup(request):
engine = create_engine('postgresql://db4qigsdbfhsdfS:ajhfdiashdna@djhfbskf-db-1.c5fyydwyvna6.us-west-2.rds.amazonaws.com:5432/db4qigx5ivz8cjqsk3qlg8?sslmode=require' , echo=True)
metadata = MetaData()
metadata.reflect(engine, only=['user_fav_books'])
table = Table('user_fav_books', metadata, autoload=True, autoload_with=engine)
engine.execute(table.insert(), [{'user_label': 'user02' , 'book_label': 'AKA6' , 'is_free_assigned': True ,
'free_assign_date': DT.date.today() + DT.timedelta(days=7*0) ,
'free_assign_end_date': DT.date.today() + DT.timedelta(days=7*1) },
{'user_label': 'user02' , 'book_label': 'AKS6' , 'is_free_assigned': True ,
'free_assign_date': DT.date.today() + DT.timedelta(days=7*2) ,
'free_assign_end_date': DT.date.today() + DT.timedelta(days=7*3) },
{'user_label': 'user02' , 'book_label': 'AK47' , 'is_free_assigned': True ,
'free_assign_date': DT.date.today() + DT.timedelta(days=7*4) ,
'free_assign_end_date': DT.date.today() + DT.timedelta(days=7*5) }])