You can access the ROWID of an SQLite table using one the special column names ROWID, _ROWID_, or OID.
Seit wann legen RDBMS eigene IDs an. Interessant. Dann kann ich mir das ja einfach mal sparen.
Das ist schon sehr lange üblich. Ich habe das vor Urzeiten mal in einer Anwendung auf Oracle genutzt, um geänderte Zeilen in einer temporären Tabelle während einer Transaktion zu vermerken. Ich habe die Details im Moment nicht mehr präsent, könnte aber versuchen mich zu erinnern, falls nötig. 😬
Kommando zurück.... Die interne OID scheint wertlos, da ich sie nicht als primary key deklarieren kann. Also wozu der Käse? Welche Design-Überlegung steckt hinter so etwas? Jemand muss ja nen Sinn darin gesehen habe.
Man kann damit extrem effizient auf Zeilen zugreifen - das ist im Prinzip wie ein Index auf die Zeile - nur, dass er nicht separate gespeichert werden muss. Stell es Dir vor wie ein Array-Index in C: durch den Offset ist schon genau eine bestimmte Speicheradresse adressiert.
Bei Oracle spielt das auch eine Rolle bei Replikation und Materialized Views, wenn mich meine Erinnerung da nicht täuscht. Sie werden auch benutzt um Indizes zu bauen und anderes.
Bei PostgreSQL heißt der Kollege CTID.