tortoise / tortoise-orm

Familiar asyncio ORM for python, built with relations in mind
https://tortoise.github.io
Apache License 2.0
4.38k stars 356 forks source link

Corrupt sql generated when bulk_create method is configured with on_conflict parameter #1568

Open zzl221000 opened 3 months ago

zzl221000 commented 3 months ago

Describe the bug

In the sqlite engine, configuring update_fields will configure on_conflict for self.insert_query and self.insert_query_all, resulting in duplicate on conflict fields.

'INSERT INTO "fileevent" ("id","tn","date","url","status","create_at") VALUES (?,?,?,?,?,?) ON CONFLICT ("id", "id") DO UPDATE SET "url"=EXCLUDED."url","url"=EXCLUDED."url"'

To Reproduce sqlite3 and use bulk api

Expected behavior

'INSERT INTO "fileevent" ("id","tn","date","url","status","create_at") VALUES (?,?,?,?,?,?) ON CONFLICT ("id") DO UPDATE SET "url"=EXCLUDED."url","url"=EXCLUDED."url"'