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 table yo ([I] integer, [i] integer) SQL error 1 : duplicate column name: i 这是一个特性还是一个bug?我读到我们可以引用列名 我写的代码不是DB可移植的(在任何地方都使用SQLITE\ucode>名称空间),所以有一个非标准的DB选项设置可以使SQLITE引擎区分大小写 我知道纯粹主义者会说,拥有两个同名的col是不合理的,但我有一种情况,列名中的大小写是从区分大小写有意义的语言中派生出来的 干

我发现:

create table yo ([I] integer, [i] integer)
SQL error 1 : duplicate column name: i
这是一个特性还是一个bug?我读到我们可以引用列名

我写的代码不是DB可移植的(在任何地方都使用
SQLITE\ucode>名称空间),所以有一个非标准的DB选项设置可以使SQLITE引擎区分大小写

我知道纯粹主义者会说,拥有两个同名的col是不合理的,但我有一种情况,列名中的大小写是从区分大小写有意义的语言中派生出来的

干杯,

Phi.

在SQLite中,标识符从不区分大小写,即使在引用时也不区分大小写


为了向后兼容,这被视为一项功能。

Thanx CL,请立即回复。如果有一个可选选项(pragma,meta-command?)来打破这种向后兼容性,那需要付出多大的努力,因为我开始使用sqlite,我没有背景,而且打开一个选项不会打破过去的程序?我不够流利,无法评估更改“标识符比较”功能在多大程度上起作用。如果您需要询问,那么您的工作量将过大。:)听起来sqlite3AddColumn()==>STRICMP()可能被黑客攻击,如果设置了glob(在do_meta().ident_case_sensitive=1中),则sqlite3AddColumn()可以执行strcmp()。没有时间调查是否有足够的SQLite标识符在涉及非ASCII标识符时区分大小写。。。e、 例如,运行以下西里尔文(在任何一种情况下都只有一个字母)都没有问题:
创建表yo([Б]整数,[б]整数)
。另见