Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverse order of values when upserting #1317

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

andyundso
Copy link
Member

I contributed two tests to Rails because I was not sure how insert_all and upsert_all should behave with duplicate identifiers, but with different values in other columns.

For insert_all, all DBMS only insert the first value. For upsert_all, PostgreSQL throws an error in this scenario, but with sqlite and MySQL, the last entry ends up in the database.

For now, I do not have a smarter idea than reversing the inserts, which ultimately provide the values_list. Adding MAX would be another idea, but I fear the SQL query would get much more complicated.

I contributed two tests to Rails because I was not sure how `insert_all` and `upsert_all` should behave with duplicate identifiers.

For `insert_all`, all DBMS only insert the first value. For `upsert_all`, PostgreSQL throws an error in this scenario, but with sqlite and MySQL, the last entry ends up in the database.

For now, I do not have a smarter idea than reversing the `inserts`, which ultimately provide the `values_list`. Adding `MAX` would be another, but I fear the SQL query would get much more complicated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant