This is the way phpMyAdmin handles the same case (it works well).
Anvil’s way of handling this is exceptionally annoying when you create tables to record information that is only generated by back-end systems (like recording a transaction) and you use the logic built into the anvil table system without any way to turn it off (allow null, no you can’t set a default value) that says “If you create a new row, and don’t specify one of the column values, it will be a None value.”
So you write a whole system, it works and you publish it with code that depends on the NULL/None value representing information not gathered.
Now you accidentally click in the data tables box on some None value (even while working in development), and guess what - you can’t put it back the way it was, and the new ‘default’ of whatever you have to put in there is not None and you can’t make it say None from the table browser.
Now your published running system has an out of bounds value that requires that you drop everything and write a new case for whatever default is for “oops I clicked a column of some type”.
I didn’t know that, thanks.
Even with that, what happens when you lose the row because you don’t even know you clicked a cell until users start complaining.
You have to try and use the gui column sort, and that only works if whatever gets inserted as ‘default’ happens to be first or last however the column gets sorted.
If that fails then you have to write some helper function to find your row.
By then you are back to
being faster than fixing it just for that one time. Either way it’s a scramble to fix a live service.