2013-11-15 94 views
2

即以下声明是否等效?定义中的SQLite 3类型名称和关键字是否区分大小写?

CREATE TABLE example_table (
    id INTEGER PRIMARY KEY, 
    name TEXT 
) 

create table example_table (
    id integer primary key, 
    name text 
) 

我想上的情况是痛苦的编辑,但我已经发现,在交互模式.schema命令记得的情况。此外,文档始终使用大写版本。

回答

1

我与此代码测试,它似乎名称是不区分大小写的:

CREATE TABLE table_sensitive (
     id INTEGER PRIMARY KEY, 
     some_int INTEGER, 
     some_text TEXT 
); 

create table table_insensitive (
     id integer primary key, 
     some_int integer, 
     some_text text 
); 

INSERT INTO table_sensitive (id, some_int, some_text) 
     VALUES ('not an integer key', 'a value', 123); 

insert into table_insensitive (id, some_int, some_text) 
     values ('not an integer key', 'a value', 123); 

INSERT INTO table_sensitive (id, some_int, some_text) 
     VALUES (0, '123', 123); 

insert into table_insensitive (id, some_int, some_text) 
     values (1, '123', 123); 

SELECT typeof(id), typeof(some_int), typeof(some_text) FROM table_sensitive; 
select typeof(id), typeof(some_int), typeof(some_text) from table_insensitive; 

其结果是:

Error: near line 13: datatype mismatch 
Error: near line 16: datatype mismatch 
integer|integer|text 
integer|integer|text 

(在插入错误与非整数主键和类型铸造适用于包含两个版本的整数的字符串。)

这意味着您几乎可以编写关键字和类型小写,这正是我想知道的。

相关问题