Some time ago AppSheet introduced “upsert” capabilities for the action type of “Data: add a new row to another table using values from this row”. It was in response to many requests to add the capability for updating an existing row in another table based on/using values from the current row.
While not perfect, it works!
However, I have noticed an issue where immediately after the action is executed, there are duplicate rows displayed in the UI (see image below) - one old and one new. Then after several seconds, depending on elapsed processing time, the old version of the row is removed (second image).
Obviously, when this action is executed a new row with the same key is inserted and then there is some clean-up to remove the old version of the row.
This is less than professional in the app visualization but more importantly it raises concern about data integrity based on the fact that duplicate row keys are even allowed to exist in the table - even for a brief few seconds.
EDITED: I have also observed that if back-to-back edits are made, ONLY THE FIRST IS RETAINED!
Please spend the necessary time to correct this flaw and perform the update in a more appropriate manner. For instance, the supplied column updates should be applied to the existing row rather than a new dup row inserted.
Viewing Table after action is executed
After a few seconds - old row is automatically removed

