--- title: IDBObjectStore.delete() slug: Web/API/IDBObjectStore/delete tags: - API - IndexedDB - Méthode - Reference translation_of: Web/API/IDBObjectStore/delete ---
{{APIRef("IndexedDB")}}

La méthode delete(), rattachée à l'interface {{domxref("IDBObjectStore")}}, renvoie un objet {{domxref("IDBRequest")}} et, dans un thread séparé, supprime le ou les enregistrements concernés.

Cette méthode prend une clé ou un objet {{domxref("IDBKeyRange")}} en argument ce qui permet de supprimer un ou plusieurs enregistrements. Si on souhaite supprimer l'ensemble des enregistrements d'un magasin de données, on utilisera plutôt la méthode {{domxref("IDBObjectStore.clear")}}.

{{AvailableInWorkers}}

Syntaxe

var request = objectStore.delete(keyOrKeyRange);

Paramètres

keyOrKeyRange
La clé de l'enregistrement qu'on souhaite supprimer ou un objet {{domxref("IDBKeyRange")}} qui indique l'intervalle de clés à supprimer.

Valeur de retour

Un objet {{domxref("IDBRequest")}} qui recevra les évènements relatifs à cette opération. request.result vaut {{jsxref("undefined")}}.

Exceptions

Cette méthode peut lever une des exceptions suivantes :

Exception Description
TransactionInactiveError La transaction associée au curseur IDBCursor est inactive.
ReadOnlyError La transaction est uniquement en lecture seule.
InvalidStateError Le curseur créé avec {{domxref("IDBindex.openKeyCursor")}}, est en train d'être parcouru ou a été parcouru après sa fin.
DataError La clé ou l'intervalle de clés n'est pas valide.

Exemples

Dans l'exemple qui suit, on ouvre une transaction en lecture/écriture et on supprime un enregistrement donné grâce à delete(). Pour un exemple complet, voir l'application Notifications To-do (démonstration).

// On ouvre l'accès à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Initialisation de la base</li>';

  // On enregistre le résultat de l'ouverture
  // dans la variable db.
  var db = DBOpenRequest.result;

  // On utilise deleteData() pour supprimer
  // un enregistrement
  deleteData();
};

function deleteData() {
  // On ouvre une transaction en lecture/écriture
  // afin de supprimer la donnée
  var transaction = db.transaction(["toDoList"], "readwrite");

  // On indique le succès de la transaction
  transaction.oncomplete = function(event) {
    note.innerHTML += '<li>Transaction terminée : modification de la base terminée.</li>';
  };


  transaction.onerror = function(event) {
    note.innerHTML += '<li>Transaction interrompue suite à l\'erreur : ' + transaction.error + '</li>';
  };

  // On crée un magasin d'objets pour la transaction
  var objectStore = transaction.objectStore("toDoList");

  // On supprime l'enregistrement du magasin
  var objectStoreRequest = objectStore.delete("Walk dog");

  objectStoreRequest.onsuccess = function(event) {
    // On indique le succès de l'opération
    note.innerHTML += '<li>Enregistremnt supprimé.</li>';
  };
};

Spécifications

Spécification État Commentaires
{{SpecName('IndexedDB', '#widl-IDBObjectStore-delete-IDBRequest-any-key', 'delete()')}} {{Spec2('IndexedDB')}}  

Compatibilité des navigateurs

{{CompatibilityTable}}
Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 23{{property_prefix("webkit")}}
24
{{CompatVersionUnknown}} 10 {{property_prefix("moz")}}
{{CompatGeckoDesktop("16.0")}}
10, partial 15 7.1
Disponible dans les web workers {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoMobile("37.0")}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}}
Fonctionnalité Android Webview Android Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome pour Android
Support simple 4.4 {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("22.0")}} 1.0.1 10 22 8 {{CompatVersionUnknown}}
Disponible dans les web workers {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatGeckoMobile("37.0")}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}}

Voir aussi