Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内存中sqlite表的不区分大小写搜索_Sqlite - Fatal编程技术网

内存中sqlite表的不区分大小写搜索

内存中sqlite表的不区分大小写搜索,sqlite,Sqlite,我有数据库电话簿和表联系人,表联系人的Create语句如下所示: 创建“联系人”表( “名称”文本整理nocase, “姓氏”文本整理nocase, “街道名称”文本整理nocase, “街道编号”文本对照表, “城市”文本整理nocase, “post”文本整理nocase, “邮局代码”文本对照表, “文本到发布”文本整理nocase, “区域代码”文本整理nocase, “电话”文本整理nocase, “传真”文本整理nocase, “电子邮件”文本整理(无案例) 我用以下代码从java代

我有数据库电话簿和表联系人,表联系人的Create语句如下所示: 创建“联系人”表( “名称”文本整理nocase, “姓氏”文本整理nocase, “街道名称”文本整理nocase, “街道编号”文本对照表, “城市”文本整理nocase, “post”文本整理nocase, “邮局代码”文本对照表, “文本到发布”文本整理nocase, “区域代码”文本整理nocase, “电话”文本整理nocase, “传真”文本整理nocase, “电子邮件”文本整理(无案例)

我用以下代码从java代码将其加载到内存中: “将‘电话簿’附加为tempInMemoryDb”和 “创建表tempInMemoryTable作为从“联系人”中选择*;”

但是使用Create table。。作为选择。。resultset被复制到新表,而不声明列属性(在我的例子中是collate nocase)


我需要的是不区分大小写的搜索,但是使用内存中的表,所以您可以告诉我如何执行此操作吗?

如果您已经知道表结构,您可以使用相同的结构创建表:

CREATE TABLE tempInMemoryTable(name text collate nocase, ...)
然后复制记录:

INSERT INTO tempInMemoryTable SELECT * FROM contacts;

是的,这解决了问题,我有同样的想法,但我认为这会很慢(我需要在不超过几秒钟内复制大约1400000条记录)。谢谢。
创建表。。。选择…
命令只是单独的
创建
/
插入
命令的简写;数据库必须完成的工作量是相同的。