2013-12-30 5 views
0

Возможно ли изменить следующие триггеры HDBC и Sqlite 3 таким образом, чтобы они содержали условие if? А на выполнение условия только оператор UPDATE должен быть выполненВозможно ли иметь условие IF внутри триггера Haskell Sqlite3?

calculateNoOfStocksTraded::String->Database.HDBC.Sqlite3.Connection->IO() 
calculateNoOfStocksTraded code conn=do                    
            run conn " CREATE TRIGGER calcStocks \ 
               \ AFTER INSERT ON historicalData \ 
               \ FOR EACH ROW \ 
               \ BEGIN \ 
               \ UPDATE company \ 
               \ SET noOfStocks=(SELECT SUM(volume) FROM historicalData WHERE companyCode= ?); \ 
               \ END; " [toSql code] 

            commit conn 

ответ

1

Ваша логика должна быть что-то вроде этого:

someCondition :: Maybe String 
someCondition = if undefined -- define your condition here 
       then "SQL UPDATE QUERY 1" 
       else "SQL UPDATE QUERY 2" 

calculateNoOfStocksTraded::String-> Database.HDBC.Sqlite3.Connection->IO() 
calculateNoOfStocksTraded code conn = do run conn query [toSql code] 
             commit conn 
    where query = someCondition 
+0

Thanx! Но для этого необходимо использовать триггер. Есть идеи ? – ashani123

+0

@ user3032393 Итак, если условие становится True, вы хотите, чтобы запрос на обновление выполнялся? – Sibi

+0

yes..that это требование .. и когда условие становится ложным, я хочу, чтобы выполнялся другой запрос на обновление. PLS помочь мне – ashani123

Смежные вопросы