Haskell Sqlite3触发器中是否可能存在IF条件?

Haskell Sqlite3触发器中是否可能存在IF条件?,haskell,if-statement,triggers,sqlite,Haskell,If Statement,Triggers,Sqlite,是否可以以包含if条件的方式修改以下HDBC和Sqlite 3触发器?在满足条件时,只应执行UPDATE语句 calculateNoOfStocksTraded::String->Database.HDBC.Sqlite3.Connection->IO () calculateNoOfStocksTraded code conn=do

是否可以以包含if条件的方式修改以下HDBC和Sqlite 3触发器?在满足条件时,只应执行UPDATE语句

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

你的逻辑应该是这样的:

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

塔克斯!但有必要为此使用触发器。有什么想法吗?@user3032393所以,如果条件变为真,你只希望执行更新查询?是的..这是要求..当条件变为假时,我希望执行另一个更新查询。请帮帮我out@user3032393更新了答案,但这并不是什么棘手的问题。事实上,我希望所有这些都在触发器中。我的意思是,检查条件,然后更新等等。这是可能的吗?