【问题标题】:android.database.sqlite.SQLiteException: near "(": syntax error (code 1):android.database.sqlite.SQLiteException:靠近“(”:语法错误(代码1):
【发布时间】:2015-10-16 13:14:44
【问题描述】:

我想在数据库中创建表,但我得到SQLiteException

这是我创建表的 SQL 请求:

String SQL_CREATE_TEMP_CATALOG_CAR_TABLE  = "CREATE TABLE temp_dn_catalog_car (\n"+
        "  catalog_car_id INTEGER PRIMARY KEY AUTOINCREMENT(11) NOT NULL, \n"+
        "  model_id INTEGER KEY(11) NOT NULL, \n"+
        "  generation_id INTEGER KEY(11) NOT NULL, \n"+
        "  body_type_id INTEGER KEY(11) NOT NULL, \n"+
        "  modification_id INTEGER KEY(11) NOT NULL, \n"+
        "  begin_year INTEGER(11) NOT NULL, \n"+
        "  end_year INTEGER(11) NOT NULL);\n";

错误代码:

android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: CREATE TABLE temp_dn_catalog_car (  catalog_car_id INTEGER PRIMARY KEY AUTOINCREMENT(11) NOT NULL,   model_id INTEGER KEY(11) NOT NULL,   generation_id INTEGER KEY(11) NOT NULL,   body_type_id INTEGER KEY(11) NOT NULL,   modification_id INTEGER KEY(11) NOT NULL,   begin_year INTEGER(11) NOT NULL,   end_year INTEGER(11) NOT NULL);

【问题讨论】:

    标签: android mysql sqlite


    【解决方案1】:
    String SQL_CREATE_TEMP_CATALOG_CAR_TABLE  = "CREATE TABLE temp_dn_catalog_car (+
        "  catalog_car_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, +
        "  model_id INTEGER KEY(11) NOT NULL, +
        "  generation_id INTEGER KEY(11) NOT NULL, +
        "  body_type_id INTEGER KEY(11) NOT NULL, +
        "  modification_id INTEGER KEY(11) NOT NULL, +
        "  begin_year INTEGER(11) NOT NULL, +
        "  end_year INTEGER(11) NOT NULL); ";
    

    【讨论】:

    • 我不确定它是否完美。只需删除 /nAUTOINCREMENT(11)
    • 感谢@lad2025
    【解决方案2】:

    删除\n 字符和AUTOINCREMENT(11)AUTOINCREMENT

    String SQL_CREATE_TEMP_CATALOG_CAR_TABLE  = 
           "CREATE TABLE temp_dn_catalog_car (catalog_car_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,model_id INTEGER NOT NULL, generation_id INTEGER  NOT NULL, body_type_id INTEGER NOT NULL, modification_id INTEGER NOT NULL, begin_year INTEGER NOT NULL, end_year INTEGER NOT NULL); ";
    

    SqlFiddleDemo

    【讨论】:

    • @ShevchenkoArtem 而且你不能分享错误代码,对吧?
    • @ShevchenkoArtem post logcat ,因为这个答案可能很完美
    • @ShevchenkoArtem AUTOINCREMENT(11) => AUTOINCREMENT
    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多