微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cordova / Sqlite外键

我试图使用Cordova和sqlite运行一个简单的例子

这是我的javascript代码`

var dbname = "PresentationDB";
var dbVersion = "1.0";
var bdSize = 100000;
var displayName = "TTPresentationDB";
var db = null;

var app = {


initialize: function() {
    this.bindEvents();
},bindEvents: function() {
    document.addEventListener('deviceready',this.onDeviceReady,false);
},onDeviceReady: function() {
    app.receivedEvent('deviceready');
    db = createdb();
    alert(db);
    db.transaction(populatedb,errorCallBack,successCallBack);

 },// Update DOM on a Received Event
receivedEvent: function(id) {

    console.log('Received Event: ' + id);
}



};

app.initialize();


function createdb()
{

 if (!window.openDatabase)
 {
   alert("Your browser does not support openDatabase");
 }
 alert("creating db..");
 return window.openDatabase(dbname,dbVersion,displayName,bdSize);

 }


function populatedb(tx)
{
tx.executesql('CREATE TABLE IF NOT EXISTS PAGE (id_page INTEGER PRIMARY KEY 
   AUTOINCREMENT,title VARCHAR(255),description TEXT,num_visits DATE,last_visited DATE)');
tx.executesql('CREATE TABLE IF NOT EXISTS CONTENT (id_content INTEGER PRIMARY
   KEY AUTOINCREMENT,FOREIGN KEY(id_page) REFERENCES PAGE (id_page))');
tx.executesql('CREATE TABLE IF NOT EXISTS ARTICLE (id_article INTEGER PRIMARY 
   KEY AUTOINCREMENT,text TEXT,FOREIGN 
   KEY (id_page) REFERENCES PAGE (id_page))');
tx.executesql('INSERT INTO PAGE (title,description,num_visits,last_visited) VALUES ("First Page","Test Page",CURRENT_TIME,CURRENT_TIME)');
tx.executesql('INSERT INTO CONTENT (id_page) VALUES (1)');
tx.executesql('INSERT INTO ARTICLE (title,text,id_page) VALUES 
   ("Article 1 Page 1","Test Article",1)');
tx.executesql('INSERT INTO ARTICLE (title,id_page) VALUES 
   ("Article 2 Page 1",1)');


}

function successCallBack()
{
    alert("Sucess");
    //alert("Returned rows = " + results.rows.length);
}


 function errorCallBack(tx,err)
 {
  alert("Error : " + err );
 }

function queryDB(tx)  
{
   tx.executesql('SELECT * FROM DEMO',[],querySuccess,errorCB);

}

`

添加外键时的行导致错误,有没有办法为sqlITE和Cordova创建关系数据库

解决方法

外键也应该定义为属性.

CREATE TABLE IF NOT EXISTS CONTENT (id_content INTEGER PRIMARY
   KEY AUTOINCREMENT,id_page INTEGER,FOREIGN KEY(id_page) REFERENCES PAGE (id_page))'

适用于Web sqlsqlite插件.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐