SQLite與MS SQL不同,不支援原生變數語法。但是,可以使用記憶體臨時表來模擬類似的功能。
首先,建立一個名為「_Variables」的記憶體暫存表來儲存你的變數:
BEGIN; PRAGMA temp_store = 2; /* 使用内存存储 */ CREATE TEMP TABLE _Variables(Name TEXT PRIMARY KEY, RealValue REAL, IntegerValue INTEGER, BlobValue BLOB, TextValue TEXT);
透過將變數名稱插入「_Variables」表中來宣告一個名為「VariableName」的變數:
INSERT INTO _Variables (Name) VALUES ('VariableName');
為你的變數賦值。在這個例子中,我們將為它賦值一個整數:
UPDATE _Variables SET IntegerValue = 42 WHERE Name = 'VariableName';
現在,你可以在INSERT運算中使用賦給變數的值。在下面的表達式中,變數「VariableName」用於WHERE子句:
INSERT INTO Table1 (Column1, Column2) SELECT Column1, Column2 FROM Table2 WHERE Column1 > (SELECT COALESCE(RealValue, IntegerValue, BlobValue, TextValue) FROM _Variables WHERE Name = 'VariableName' LIMIT 1);
完成操作後,別忘了關閉交易:
DROP TABLE _Variables; COMMIT;
以上是如何模擬 SQLite 插入中的變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!