sqlite3查询某字段报错

使用sqlite3的时候,遇到个很奇怪的问题,select某字段的时候,报错感觉像是该字段不存在,但是表中确实是有这个字段的。查询其他字段均没有问题,唯独group这个字段
该表是 kafka监控工具KafkaOffsetMonitor-assembly-0.2.0.jar创建的表,表结构如下

sqlite> .schema OFFSETS
CREATE TABLE "OFFSETS" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"group" VARCHAR(254) NOT NULL,"topic" VARCHAR(254) NOT NULL,"partition" INTEGER NOT NULL,"offset" BIGINT NOT NULL,"log_size" BIGINT NOT NULL,"owner" VARCHAR(254),"timestamp" BIGINT NOT NULL,"creation" BIGINT NOT NULL,"modified" BIGINT NOT NULL);
CREATE INDEX "idx_search" on "OFFSETS" ("group","topic");
CREATE INDEX "idx_time" on "OFFSETS" ("timestamp");
CREATE UNIQUE INDEX "idx_unique" on "OFFSETS" ("group","topic","partition","timestamp");

查询操作如下,select group字段报错:Error: near "group": syntax error,但是select topic是没问题的。

sqlite> select * from OFFSETS limit 1;
id          group                    topic                    partition   offset      log_size    owner       timestamp      creation       modified     
----------  -----------------------  -----------------------  ----------  ----------  ----------  ----------  -------------  -------------  -------------
5092201     IM_APP_NOTICE_MSG_OLD_1  IM_APP_NOTICE_MSG_TOPIC  0           1021391     1032122                 1483027807567  1471691588963  1471833538219
sqlite> select * from OFFSETS where group='IM_APP_NOTICE_MSG_OLD_1';
Error: near "group": syntax error
sqlite> select * from OFFSETS where topic='IM_APP_NOTICE_MSG_TOPIC' limit 1;
id          group                    topic                    partition   offset      log_size    owner       timestamp      creation       modified     
----------  -----------------------  -----------------------  ----------  ----------  ----------  ----------  -------------  -------------  -------------
5092201     IM_APP_NOTICE_MSG_OLD_1  IM_APP_NOTICE_MSG_TOPIC  0           1021391     1032122                 1483027807567  1471691588963  1471833538219
sqlite> select group from OFFSETS limit 1;
Error: near "group": syntax error
sqlite> select topic from OFFSETS limit 1;
topic                  
-----------------------
IM_APP_NOTICE_MSG_TOPIC

搜索了半天,也没找到相关资料,但是无意在group字段上加引号后,居然不会报错了。╮(╯▽╰)╭

sqlite> select "topic" from OFFSETS limit 1;
topic                  
-----------------------
IM_APP_NOTICE_MSG_TOPIC

遇到第二个问题:
查询某字典时,字段值若太长,出来的结果会被截断。但是select * 查询出来的不会被截断。还好python操作的时候没有这个问题

sqlite> select DISTINCT "group" from OFFSETS ;
group                 
----------------------
IM_APP_NOTICE_MSG_OLD_
IM_APP_NOTICE_MSG_OLD_

>>> import sqlite3
>>> conn = sqlite3.connect('offsetapp.db')
>>> cur = conn.cursor()
>>> cur.execute('select DISTINCT "group" from OFFSETS ;')
<sqlite3.Cursor object at 0x7f508817c190>
>>> cur.fetchall()
[(u'BINSPECT_MSG_SERVICE_1',), (u'IM_APP_NOTICE_MSG_OLD_1',), (u'IM_APP_NOTICE_MSG_OLD_10',), (u'IM_APP_NOTICE_MSG_OLD_2',), (u'IM_APP_NOTICE_MSG_OLD_3',), ]

推荐阅读更多精彩内容

  • 什么是SQLite?数据库存储数据的步骤 ●SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备...
    飞行的猫阅读 1,633评论 1 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 118,155评论 14 132
  • 周日,没有撒野,灵感还在寻找中 上午专注的加班工作,久违的满足感和成就感。 昨天听了Angie说的升职,平级升职,...
    初心如是阅读 54评论 0 0
  • 在一个万物俱备、什么都不缺的年代,占有物质很难再刺激我们的感官,让我们获得长久的满足。在新的时代,比起金钱和物质,...
    汐颜之美阅读 92评论 0 0
  • “两个轮子载动的是身体,四个轮子载动的是灵魂”能说出这句话的人肯定拥有着最有趣的灵魂。 ...
    糖糖的唐阅读 33评论 0 0