sqlite数据库中的主键必须是Integer类型的,其他类型的绝对不行,假如在一个表中没有设置主键,当插入数据时,是存在一个看不见的默认主键自增长的。假如你声明表中的主键为Integer primary key类型,每当你在一行中插入一个null值时,null自动被转换为一个比该行中最大值大1的一个整数,如果表是空的话,将会是1。(如果是最大可能值9223372036854775807,键值将是随机未使用的数。)
sqlite允许向一个integer型字段中插入字符串,任何数据都可以插入任何列。你可以向一个整型列中插入任意长度的字符串,向布尔型列中插入浮点数,或者向字符型列中插入日期型值。 在 CREATE TABLE 中所指定的数据类型不会限制在该列中插入任何数据。任何列均可接受任意长度的字符串(只有一种情况除外: 标志为INTEGER PRIMARY KEY的列只能存储64位整数,当向这种列中插数据除整数以外的数据时,将会产生错误。
sqlite 不强制 VARCHAR 的长度。 你可以在 sqlITE 中声明一个 VARCHAR(10),sqlite还是可以很高兴地允许你放入500个字符。 并且这500个字符是原封不动的,它永远不会被截断。