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