我必须在SQLite3中运行这样一个非常简单的查询.
INSERT OR REPLACE INTO tblPhoneList(Phone, PeopleId, StorageType) VALUES('+91912345789', '1','1');
但无论我做什么,该号码都存储为91912345789. +前缀被忽略.该领域Phone
是一个String
.为什么忽略+前缀?反正有没有避免这个?
PS此代码在Android内部运行
编辑:这是表的架构
CREATE TABLE tblPhoneList(Phone STRING PRIMARY KEY ON CONFLICT REPLACE, StorageT ype INTEGER, PeopleId INTEGER, FOREIGN KEY(PeopleId) references tblPeople(id));
ax... 9
手册中的 < UPDATE > :
声明的"STRING"类型具有NUMERIC的亲和力,而不是TEXT
所以请将此列的类型更改为TEXT
,您应该完成. UPDATE END >
你的Phone
专栏是什么类型的(试试PRAGMA table_info (tblPhoneList)
)?如果它是TEXT
(或BLOB
),你不应该有任何问题 - 只是在这里试过.如果是INTEGER
或REAL
,你应该将其转换为TEXT
- 你不能指望一个INTEGER
或REAL
列存储+
字符串.
有关所有详细信息,请参阅SQLite版本3中的数据类型.
手册中的 < UPDATE > :
声明的"STRING"类型具有NUMERIC的亲和力,而不是TEXT
所以请将此列的类型更改为TEXT
,您应该完成. UPDATE END >
你的Phone
专栏是什么类型的(试试PRAGMA table_info (tblPhoneList)
)?如果它是TEXT
(或BLOB
),你不应该有任何问题 - 只是在这里试过.如果是INTEGER
或REAL
,你应该将其转换为TEXT
- 你不能指望一个INTEGER
或REAL
列存储+
字符串.
有关所有详细信息,请参阅SQLite版本3中的数据类型.