Hampir selesai. Anda berhasil mendapatkan insert order. Jadi:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
Di konsol saya, saya mendapatkan yang berikut:
mysql> select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as
init ORDER BY myrow desc LIMIT 1;
+------+-------+
| myId | myrow |
+------+-------+
| A003 | 4 |
+------+-------+
1 row in set (0.00 sec)
Demo
PERBARUI
Yak benar. Solusi saya tidak deterministik. Mungkin itu berfungsi untuk sejumlah kecil catatan. Saya menemukan banyak posting tentang tidak dapat diandalkannya penyortiran default dari pernyataan SELECT (di sini misalnya ).Langkah selanjutnya:
- Dalam kondisi apa pengurutan SELECT default cocok dengan urutan penyisipan?
- Apakah mungkin untuk mendapatkan catatan yang terakhir disisipkan dalam tabel tanpa id tambahan atau stempel waktu penyisipan?
Saya tahu ini bukan jawaban, tetapi menyatakan masalah membatasi masalah.