当前位置: 首页 > 知识库问答 >
问题:

创建表db时出现android语法错误

宣冥夜
2023-03-14

我的logcat消息:

(1)near“INTEGER”:CREATE_SQL android.database.sqlite.sqliteexception中的语法错误异常:编译时:create BOMUL_PLACE(_id INTEGER NOT NULL主键auticrement,NAME TEXT,LAT DOUBLE,LNG DOUBLE,CHECK INTEGER DEFAULT 0);

和我的代码

       //drop existing table
       String DROP_SQL = "drop table if exists " + TABLE_BOMUL_PLACE;
       try
       {
           db.execSQL(DROP_SQL);
       }
       catch(Exception ex)
       {
           Log.e(TAG, "Exception in DROP_SQL", ex);
       }


       String CREATE_SQL = "create table " +  TABLE_BOMUL_PLACE + "("
               + "  _id INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT, "
               + "  NAME TEXT, "
               + "  LAT DOUBLE, "
               + "  LNG DOUBLE, "
               + "  CHECK INTEGER DEFAULT 0);";

       try 
       {
           db.execSQL(CREATE_SQL);
       } 
       catch(Exception ex) 
       {
           Log.e(TAG, "Exception in CREATE_SQL", ex);
       }

共有1个答案

易品
2023-03-14

语法错误来自check列。check是SQL保留字,需要重命名或“quoted”

您似乎已经在代码中解决了logcat的其他语法问题:

create BOMUL_PLACE( _id INTEGER NOT NULL PRIMARY KEY AUTOICREMENT, NAME TEXT, LAT DOUBLE, LNG DOUBLE, CHECK INTEGER DEFAULT 0

>

  • 创建表,丢失

  •  类似资料:
    • 问题内容: 我在Docker容器中有一个MySQL数据库。入口点执行创建数据库的脚本和创建表的脚本。 除了一张桌子,其他所有东西都工作正常。 记录到控制台的错误是 第150行是后面的开括号 MySQL版本:8.0.3-rc-log 主机操作系统:Debian jessie 我开始考虑并且可能是保留关键字,因此我重命名了表和列,但错误仍然存​​在。 问题答案: @Bill Karwin在第一条评论中

    • 我正在用MySQL数据库构建一个django应用程序。当我第一次运行“Python Manage.py Migrate”时,一些表创建得很好,然后出现一些错误。引出的错误是: 完整的回溯是:

    • 我正在尝试使用EclipseLink创建一个表。正在使用的java类是:- EL警告]:2017-04-07 14:04:53.768--ServerSession(1650327539)--异常[EclipseLink-4002](Eclipse持久性服务-2.6.3.v20160428-59C81C5):org.Eclipse.Persistence.exceptions.DatabaseEx

    • /*HHH000388:不成功:创建表USER_REGISTRATION_DB(用户-否整数不为空,地址varchar(60),年龄varchar(255),出生日期date_of_birding datetime不为空,电子邮件varchar(40),第一名varchar(30),最后一名varchar(255),移动varchar(255)不为空,密码varchar(30),用户名varcha

    • 我想创建一个在MySQL中拥有自己数据库所有权限的用户。 当我使用这个用户创建一个表时,MySQL返回SQL server正在使用只读选项运行。 但是,当我改变到另一个现有用户的所有权限上,我可以创建表没有错误。 我想知道只读选项是全局的还是什么? 以下是我使用MySQL root的MySQL命令: 然后我切换到用户"demo": 所以我检查了只读选项,它似乎是打开的。 然而,我尝试使用另一个用户

    • 我正在尝试使用SQLite数据库在android中本地存储电子邮件。当我第一次调用,该数据库尚不存在,已创建。我在create语句中遇到语法错误。。。我的代码看起来像这样。。。 我不熟悉SQLite语法,我一直在寻找导致这种情况的原因,但没有任何结果。知道是什么引起的吗?数据库确实是本地存储此类数据的最佳方式。 准确的错误如下所示。。