我可以关闭整个数据库的区分大小写,是指所有表的所有列吗?
如果我已经创建了数据库会发生什么?
是否必须手动为COLLATE
到NOCASE
的所有列进行操作?
我在几个查询中尝试了NOCASE
,例如关注
select * from ...table COLLATE NOCASE
但如果我或其他新人忘记使用NOCASE
怎么办?
我厌倦了在创建表时创建每个列NOCASE。
答案 0 :(得分:0)
您应该在桌面上设置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;
有一个名为SQLite Maestro的应用程序(免费试用30天)可以为您完成此过程。