webSQL AUTOINCREMENT无法正常工作(与搜索中的不同)

时间:2014-02-06 22:03:58

标签: android cordova

学习phonegap为Android编写基本应用。出于这个原因使用WebSQL,我知道它已被弃用,但它仅适用于Android手机而且没有缩放,所以此时不​​会为像polyfill这样的东西打扰。

在我开始使用回调处理程序之类的东西之前,试着让auto_increment工作,这是代码的基础:

var db = openDatabase('test', '1.0', 'Test', 10 * 1024 * 1024);
db.transaction(
    function (tx) {  
        tx.executeSql('CREATE TABLE IF NOT EXISTS test (id INTEGER AUTOINCREMENT, value VARCHAR)');

    }
);

$(function(){
    $('#test').click(function(){
        alert('click');
        db.transaction(
            function (tx) {
                tx.executeSql('INSERT INTO test (value) VALUES (?)', ["testValue"]);
            }
        );      
    });
});

尝试使用默认关键字之类的东西,但似乎没有任何效果。如果我为ID列添加一个值,它可以正常工作。


编辑这是尝试它的代码,什么都不插入。

var db = openDatabase('test', '1.0', 'Test', 10 * 1024 * 1024);
db.transaction(
    function (tx) {  
        tx.executeSql('CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, value VARCHAR)');

    }
);

$(function(){
    $('#test').click(function(){
        alert('click');
        db.transaction(
            function (tx) {
                tx.executeSql('INSERT INTO test (value) VALUES (?)', ["testValue"]);
            }
        );      
    });
});

1 个答案:

答案 0 :(得分:6)

尝试使用:

tx.executeSql('CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, value VARCHAR)');

在webSql(sqlite)中,除非传递值,否则PRIMARY KEY会自动递增。其他信息:http://sqlite.org/autoinc.html