ほぼ完了しました。挿入順序を取得することに成功しました。So:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
私のコンソールでは、次のように表示されます:
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)
デモ
更新
ヤクは正しいです。私の解決策は決定論的ではありません。多分それは少量のレコードのために働きます。 SELECTステートメントのデフォルトの並べ替えの信頼性が非常に低いことがわかりました(ここで例 )。次のステップ:
- デフォルトのSELECT並べ替えが挿入順序と一致する条件はどれですか?
- インクリメンタルIDまたは挿入タイムスタンプなしでテーブルに最後に挿入されたレコードを取得することは可能ですか?
私はそれが答えではないことを知っていますが、問題を述べることは問題を制限します。