IndexedDB Unique Key
hotti
- javascript
Mein Store ist so gebaut
request.onupgradeneeded = function(){
console.log("Upgrade IndexedDB zu VERSION: %VERSION%");
var db = this.result;
if(!db.objectStoreNames.contains('images')){
store = db.createObjectStore('images', {
keyPath: 'imgid',
autoIncrement: true,
});
state = store.createIndex("imgid_idx", "imgid", {unique:true});
console.log("Store 'images' wurde angelegt");
}
};
Das wird fehlerfrei angelegt. Wenn ich nun ein Bild speichere und dazu die imgid = 1 vorgebe, wird das gespeichert wie erwartet.
Gebe ich beim nächsten Bild die imgid nicht vor, wird ein neuer Eintrag mit imgid = 1 erzeugt, es sind zwei verschiedene Einträge, das kann ich an den unterschiedlichen Bildern sehen.
Recherchiert habe ich: Für Insert/Update ist die Methode put zuständig, die Engine entscheidet selbstständig, ob autoIncrement zuschlägt (wenn der key nicht mitgeliefert wurde) oder ob ein neuer autoIncrement key erzeugt wird. Soweit kapiere ich das auch und mein Code, diesbezüglich programmiert, macht, was er soll.
Aber was ich nicht kapiere: Im Store gibt es danach zwei Einträge mit demselben key. WTF?
Oder habch was übersehen?
Eine Kerze für den Pilger bitte...