2013-03-29 28 views
0

SQLite允许define custom functions可以从SQL语句中调用。如何在SQLite中调用用户定义函数?

我想利用这一机制,在我的应用程序得到通知的触发活动,即是这样的:

CREATE TRIGGER AfterInsert AFTER INSERT ON T 
BEGIN 
    -- main trigger code involves some extra db modifications 
    -- ... 

    -- invoke application callback 
    SELECT ChangeNotify('T', 'INSERT', NEW.id); 
END; 

然而,用户定义的函数只添加到当前数据库连接。可能有其他客户没有定义ChangeNotify,我不希望他们得到no such function错误。只有定义了函数才可以调用它?

任何替代解决方案也赞赏。

回答

1

SQLite被设计为一个嵌入式数据库,所以假设你的应用程序控制了数据库的操作。

SQLite没有SQL函数来检查用户定义的函数。

如果要检测仅从您自己的程序中进行的更改,请使用sqlite3_update_hook

+0

谢谢。如果UDFS只存储在像sqlite_master这样的地方,那么我可能会用'EXISTS'里面的'CASE'声明来逃避... –

相关问题