Haskell Sqlite3触发器中是否可能存在IF条件?
是否可以以包含if条件的方式修改以下HDBC和Sqlite 3触发器?在满足条件时,只应执行UPDATE语句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
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更新了答案,但这并不是什么棘手的问题。事实上,我希望所有这些都在触发器中。我的意思是,检查条件,然后更新等等。这是可能的吗?