>Or to put it another way, I want to select values from one table ordered by
>complex criteria and insert them into another table. I want to be able to
>retrieve the rows from the target table in the same order they were inserted,
>but I don't care about the specific ordering criteria. I only care about the order they were inserted.
As I understand, your business requirement is to retrieve the rows from the target
table the same way they were inserted. The one and only way to achieve it is
to use the same ORDER by clause to SELECT from target, what it was used
to insert into target. In your case, the insert is
INSERT INTO bar (val) SELECT val FROM foo ORDER BY id DESC;
So the SELECT should also be ORDER BY ID desc
Just don't care on how it inserts and stores row internally.