2013-03-29 2 views
0

SQLite는 SQL 문에서 호출 할 수있는 define custom functions을 허용합니다.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' 문을 사용해서 도망 갈 수 있습니다 ... –

관련 문제