[英]How do I add a new entry using dexie.js
使用 Dexie 我試圖添加一個新條目,但如果我指定了 ID 號,我只能讓它添加。 我希望 id 作為主鍵自動遞增,我該如何實現?
這有效
var db = new Dexie("user-database");
db.version(1).stores({
users: "id++"
});
db.open();
var insert_data = {id:5,name: "Paul", email: "test@test.com", user_group: 2};
db.users.add(insert_data);
但是,如果我從插入對象中取出 id,則它不起作用。 見下文
這不起作用
var db = new Dexie("user-database");
db.version(1).stores({
users: "id++"
});
db.open();
var insert_data = {name: "Paul", email: "test@test.com", user_group: 2};
db.users.add(insert_data);</code>
有任何想法嗎?
id
將被附加檢查它。
html:
Name:<input type="text" name="name" id="name"/><br/>
Email<input type="text" name="email" id="email"/></br>
<button>add new</button>
javascript:
// Declare db instance
var db = new Dexie("test-database");
// Define Database Schema
db.version(1).stores({
users: "++id, name, email"
});
// Open Database
db.open();
function add_new(name,email){
// Interact With Database
db.transaction('rw', db.users, function () {
// Let's add some data to db:
insert_object = {name:name,email:email};
db.users.add(insert_object);
}).catch(function(err) {
console.error(err.stack || err);
});
}
add_new("susheel singh","susheel61@gmail.com");//default content
document.querySelector("button").addEventListener("click",function(e){
add_new(document.getElementById("name").value,document.getElementById("email").value);
});
在重新定義另一個模式之前,您必須刪除數據庫。
更新小提琴: https : //jsfiddle.net/dfahlander/eb9yt0s7/
var db = new Dexie("test-database");
db.version(1).stores({
users: 'id,name,email'
});
document.write ('hello');
db.delete().then(function (){
return db.open ();
}).then (function (){
var insert_object = {id:2,name:'Bob',email:'test@test.com'};
return db.users.add(insert_object);
}).then(function(){
return db.delete (); // don't forget to delete if changing prim key
}).then (function (){
db = new Dexie("test-database");
db.version(1).stores({
users: 'id++'
});
return db.open();
}).then(function (){
var insert_object = {name:'Jim',email:'jim@test.com'};
db.users.add(insert_object);
}).then(function (){
return db.users.toArray();
}).then (function (result){
document.write(JSON.stringify (result));
}).catch (function (e) {
document.write ('error: ' + e);
});
如果您沒有更改主鍵,而只是添加或刪除索引,您可以關閉數據庫,然后添加 db.version (2) 與更改索引或添加/刪除表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.