我可以关闭整个数据库(即所有表的所有列)的区分大小写吗?
如果我已经创建了数据库会发生什么?
我是否必须手动将所有列设置COLLATE为NOCASE?
我尝试NOCASE过几个查询,如下所示
select * from ...table COLLATE NOCASE
Run Code Online (Sandbox Code Playgroud)
但是如果我或其他新人忘记使用怎么办?NOCASE
我厌倦了在创建表时使每一列都为 NOCASE。
你应该放在COLLATE NOCASE桌子上。如果该表已存在,则使用ALTER TABLE. 有关说明和示例,请参阅sqlite.org 。
更新MrGumble 是对的,SQLite 不支持直接使用ALTER TABLE. 您需要通过这样的中间表:
CREATE TABLE table01 (id, name countrycode, comment );
INSERT INTO table01 SELECT id, name, countrycode, comment FROM table;
DROP TABLE table;
CREATE TABLE table (
id integer PRIMARY KEY AUTOINCREMENT,
name text COLLATE NOCASE
country integer,
comment text COLLATE NOCASE
);
INSERT INTO table (id, name, countrycode, comment)
SELECT id, name, countrycode, comment FROM table01;
DROP TABLE table01;
Run Code Online (Sandbox Code Playgroud)
有一个名为SQLite Maestro的应用程序(有 30 天免费试用期)可以为您完成此过程。