表: CREATE TABLE配置(密鑰字符串,值STRING,PRIMARY KEY(密鑰)); (Key,Value)值(42,cast('0042'as text));這是我嘗試的: 。如何在SQLite數據庫中插入字符串而無需轉換?
這裏是轉儲: INSERT INTO 「配置」 VALUES(42,42);
我想: INSERT INTO 「配置」 VALUES(42, '0042');
表: CREATE TABLE配置(密鑰字符串,值STRING,PRIMARY KEY(密鑰)); (Key,Value)值(42,cast('0042'as text));這是我嘗試的: 。如何在SQLite數據庫中插入字符串而無需轉換?
這裏是轉儲: INSERT INTO 「配置」 VALUES(42,42);
我想: INSERT INTO 「配置」 VALUES(42, '0042');
如果您創建表:
CREATE TABLE configuration(Key STRING, Value TEXT, PRIMARY KEY (Key));
(沒有做存儲處罰這與SQLite),那麼你會得到保留的前導零,即使你使用最簡單的INSERT形式。這是因爲STRING
is not a real SQLite type, and so has NUMERIC
affinity。
我不知道你想什麼,但本質上,它應該是:
INSERT INTO configuration VALUES(42,'0042');
這沒有任何影響。 – 2010-08-20 20:27:40
對不起,配置不應該在引號之間。 – MPelletier 2010-08-20 20:47:30
這沒有什麼區別。 (引號是好的;這是命名實體的SQL語法,例如名稱不能被「裸」使用的列或字段。)真的。我只是在交互式會話中輸入這個信息並得到錯誤的行爲... – 2010-08-20 20:54:27
不適用於SQLite。 'STRING'將被解釋爲'TEXT'。 「VARCHAR」,「VARCHAR2」和「POTATO」也是如此。 (我沒有你)。 – MPelletier 2010-08-20 20:50:07
@MPelletier:我知道這一點,但我也知道,當我使用'TEXT'時它有效,而當我使用'STRING'時則不會。我只是測試它。 – 2010-08-20 20:55:36
@MPelletier:哈。它*記錄* STRING是NUMERIC(參見編輯鏈接)。這真是一個令人討厭的問題! – 2010-08-20 21:11:54