[sqlite] 저장 프로 시저 및 SQLite를 작성 하시겠습니까?

SQLite를 사용할 때 어떻게 든 저장 프로 시저를 만들 수 있습니까?



답변

SQLite는 높은 동시성, 세분화 된 액세스 제어, 다양한 내장 함수, 저장 프로 시저 , 난해한 SQL 언어 기능, XML 및 / 또는 Java 확장, tera- 등 일부 사람들이 유용하다고 생각하는 다른 특성을 희생해야했습니다. 또는 페타 바이트 확장 성 등

출처 : SQLite의 적절한 사용


답변

답변 : 아니오

이유는 … 데이터베이스에 procs를 저장 한 주요 이유는 SQL 엔진과 동일한 프로세스에서 SP 코드를 실행하기 때문입니다. 이는 네트워크 연결 서비스로 작동하도록 설계된 데이터베이스 엔진에 적합하지만 SQLite가 별도의 SQL 엔진 프로세스가 아닌 응용 프로그램 프로세스에서 DLL로 실행된다는 점을 감안할 때 SQLite의 필요성은 훨씬 적습니다. 따라서 호스트 언어로 된 SP 코드를 포함하여 모든 비즈니스 로직을 구현하는 것이 더 합리적입니다.

그러나 호스트 언어 (PHP, Python, Perl, C #, Javascript , Ruby 등) 에서 사용자 정의 함수사용 하여 SQLite를 확장 할 수 있습니다 . 그런 다음 이러한 사용자 정의 기능을 SQLite 선택 / 업데이트 / 삽입 / 삭제의 일부로 사용할 수 있습니다. 나는 한 C #으로 이런 짓을 사용하여 DevArt의 SQLite는 암호 해시를 구현합니다.


답변

여전히 관심이 있다면 Chris Wolf는 저장 프로 시저를 사용하여 SQLite의 프로토 타입 구현을 만들었습니다. 자세한 내용은 블로그 게시물 : SQLite에 저장 프로 시저 추가


답변

그러나 AFTER INSERT 트리거를 사용하여 fake-sp라는 전용 테이블을 사용하여 가짜를 만들 수 있습니다. 전용 테이블 행에는 가짜 sp에 대한 매개 변수가 포함되어 있으며 결과를 반환해야하는 경우 두 번째 (poss. temp) 테이블 (가상 sp-sp 관련 이름 포함)을 사용하여 해당 결과를 포함 할 수 있습니다. 두 개의 쿼리가 필요합니다. 첫 번째는 가짜 sp- 트리거 테이블에 데이터를 삽입하고, 두 번째는 비어 있거나, 잘못되었을 경우 메시지 필드를 가질 수있는 fake-sp-results-table에서 SELECT입니다. .


답변