【问题标题】:(1) near "AUTO_INCREMENT": syntax error when altering table(1) “AUTO_INCREMENT”附近:更改表时出现语法错误
【发布时间】:2012-12-23 14:56:09
【问题描述】:

我正在尝试更改定义如下的 SQLite 表:

    String CREATE_TABLE="CREATE TABLE IF NOT EXISTS " + tab_NAME + " ("
                            + row_ID + " INTEGER PRIMARY KEY , "
                            + row_NAME + " TEXT, "
                            + row_EMAIL + " TEXT, "
                            + row_WEBSITE + " TEXT, "
                            + row_TELEPHONE1 + " TEXT, "
                            + row_TELEPHONE2 + " TEXT, "
                            + row_TELEPHONE3 + " TEXT, "
                            + row_TELEPHONE4 + " TEXT, "
                            + row_TELEPHONE5 + " TEXT);";
        db_name.execSQL(CREATE_TABLE);

        String newTab="CREATE TABLE IF NOT EXISTS temp ("
                + row_ID + " INTEGER PRIMARY KEY AUTOINCREMENT , "
                + row_NAME + " TEXT, "
                + row_EMAIL + " TEXT, "
                + row_WEBSITE + " TEXT, "
                + row_TELEPHONE1 + " TEXT, "
                + row_TELEPHONE2 + " TEXT, "
                + row_TELEPHONE3 + " TEXT, "
                + row_TELEPHONE4 + " TEXT, "
                + row_TELEPHONE5 + " TEXT);";
        db_name.execSQL(newTab);

这里是 auto_increment alter 语句:

    String alter="ALTER TABLE temp AUTO_INCREMENT=1;";
    ourDatabase.execSQL(alter);

我收到一条错误消息,提示 (1) near AUTO_INCREMENT: syntax error

怎么了??有什么帮助吗??

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    在 SQLite 中,声明为 INTEGER PRIMARY KEY 的列将自行自动递增。去掉 AUTOINCREMENT 关键字,然后试试。

    查看SQLite FAQ

    【讨论】:

    • 好的,我删除了 `String alter="ALTER TABLE temp AUTO_INCREMENT=1;";` ourDatabase.execSQL(alter);` 效果很好,但我需要重置 auto_increment 值到1,那怎么办?
    • 删除表并重新创建它。
    • 如果你的错误得到解决,你也可以接受这个作为答案:)
    • 比丢表更好的解决方案:stackoverflow.com/a/1601854/1937033
    【解决方案2】:

    sqlite 中将列设置为PRIMARY KEYAUTOINCREMENT。因此无需将列明确指定为AUTOINCREMENT。检查此link 以供参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      • 2016-06-22
      相关资源
      最近更新 更多