Using Row ID to act as external ID when updating table data

I am having trouble here with my GlideApp Table, in preserving my rows (records)

I have a Row ID column. I export my data with RowID so as to match it on import.

I update 1 or 2 columns for pricing fluctuations

(Because I cannot sort Glide tables I cannot simply paste over the new column data from the old because my sheets are sorted properly A-Z or another reasonable way)

My problem seems to be when importing CSV it does not match the rows to the RowID and overwrites the other matched Cells, instead it creates new rows and, therefore duplicate records, making my previously shared records not very useful.


I don’t think I get this part. What are you using to import the file? I assume the normal “import” function? Can you attach some screenshots or a video?

So - normally - a DB has the ability to provide a schema, to indicate a single column as “External ID” or a GUI to “map” columns/fields

In our case I am importing via CSV and the ids are not finding themselves, there’s no mapping.

Does this make sense?

So are you using the import function of Glide Tables, or are you importing it to Google Sheets/another type of database?

I don’t think you can expect any mapping when you import to Glide Tables, you have to make sure the CSV matches the structure of the table itself, and order.

If you can explain more about this I think we would know better about what you are trying to do. Why don’t you change it right on the table instead of exporting, editing and then importing again?

Yea importing via CSV.

It’s unreasonable to have no external ID matching if you cannot sort in Glide.

Any idea when this is coming?


Do you have to sort in the data view though? Does it work for you if you only sort it on the front end?

No, in fact we have never had something like that since the first day.

1 Like

Have you considered using the Glide API?

I’d prefer not to - I am not much of an API builder. Is there a reasonably simple way to hit the API without losing IDs on upsert?

The only way is to update the same rows, in the same order. There’s nothing native in the API to allow you to do “upsert”.

It would have to be “update” and “insert” in different logic branches. If you have the rowIDs, and know which rows are “old” and “new”, then just separate them and do updates on the “old” rows, and add on the “new” rows.

However, I want to circle back to my question: Why don’t you change it right on the table instead of exporting, editing and then importing again?