2013-12-18 63 views
1

而是寫作......有沒有辦法在SQLite中註冊查詢?

SELECT {long ass list of crap} 
FROM long_table_name 
WHERE {annoyingly complex criteria} = 1 

...每次有需要的時候,有沒有登記此查詢方式?一種CREATE_QUERY命令,如果你願意?

在此先感謝。

+1

你可以做一個源文件,'包含所有上述查詢的query.sql',然後每次做'USE query.sql的;'。或者,當然,您可以將它存儲在Python字符串中。 – hkk

回答

3

使用view

CREATE VIEW view_name AS 
SELECT {long ass list of crap} 
FROM long_table_name 
WHERE {annoyingly complex criteria} = 1; 

之後,你可以簡單地寫SELECT * FROM view_name

+0

'views'是否也支持非'SELELECT'查詢(即'DELETE','INSERT'和'UPDATE')? –

+0

@NoobSaibot:不是直接的,但是你可以用'DELETE','INSERT'或''INSTEAD OF'子句定義一個['TRIGGER'](http://www.sqlite.org/lang_createtrigger.html) UPDATE'。 – dan04

+0

你介意在這種情況下附加一個如何使用'INSTEAD OF'的例子嗎?我真的很感激它。 –

1

不能SQLite中創建存儲過程,而不是你做一些這方面

  1. 創建一個表或單獨的數據庫,您可以存儲您的查詢和使用一個唯一的密鑰或名稱
  2. 檢索它們創建一個文件並獲取他們
  3. 硬代碼他們在您的應用程序
  4. 創建類,做查詢和調用它,當你需要它的輸入參數(如果需要)
相關問題