2013-12-18 4 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

Do 'views' также поддерживают запросы, отличные от' SELECT' (т. Е. 'DELETE',' INSERT' и 'UPDATE')? –

+0

@NoobSaibot: Не напрямую, но вы можете определить ['TRIGGER'] (http://www.sqlite.org/lang_createtrigger.html) с предложением' INSTEAD OF' для 'DELETE',' INSERT' или ' UPDATE'. – dan04

+0

Не могли бы вы добавить свой ответ на примере использования 'INSTEAD OF' в этом случае? Я бы очень признателен. –

1

Вы не можете создать хранимую процедуру в SQLite, вместо этого вы сделать некоторые из этого

  1. Создать таблицу или отдельную базу данных, где вы можете хранить ваш запрос и получать их с помощью уникального ключа или имя
  2. Создайте файл и восстановить их
  3. жесткого кодом их в приложении
  4. Создать класс, сделать запрос и вызвать его, когда вам это нужно с входным параметром (при необходимости)
Смежные вопросы