Bạn có thể tạo các hàm trong SQLite như bạn có thể trong MSSQL không?Cách tạo các hàm tùy chỉnh trong SQLite
Nếu có, làm cách nào? Cú pháp là gì?
Cảm ơn
Bạn có thể tạo các hàm trong SQLite như bạn có thể trong MSSQL không?Cách tạo các hàm tùy chỉnh trong SQLite
Nếu có, làm cách nào? Cú pháp là gì?
Cảm ơn
SQLite không có chức năng lưu trữ/ngôn ngữ thủ tục lưu trữ. Vì vậy, CREATE FUNCTION
không hoạt động. Tuy nhiên, những gì bạn có thể làm là các hàm bản đồ từ một thư viện c đến các hàm SQL (các hàm do người dùng định nghĩa). Để làm điều đó, sử dụng C API SQLite (xem: http://www.sqlite.org/c3ref/create_function.html)
Nếu bạn không sử dụng C API, API wrapper của bạn có thể xác định một cái gì đó cho phép bạn truy cập vào tính năng này, xem ví dụ:
sqlite_create_function()
(http://www.php.net/manual/en/function.sqlite-create-function.php)sqlite3.create_function()
(http://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.create_function)$dbh->func(_$name,_$argc,_$func_ref,_"create_function")
(https://metacpan.org/pod/DBD::SQLite#dbh-sqlite_create_function-name-argc-code_ref)Điều này có thể hữu ích đối với nhiều người: trong SQLiteStudio, bạn có thể xác định các hàm và collations mới dễ dàng từ giao diện thông qua một plugin dựng sẵn sql chẳng hạn.
https://github.com/pawelsalawa/sqlitestudio/wiki/Official_plugins#sql-built-in
Thông qua trình chỉnh sửa hàm.
@Andrew: Vì bạn đề cập đến MSSQL, bạn có thể quan tâm để biết rằng UDF SQLite dễ thực hiện trong bất kỳ ngôn ngữ CLR nào bằng cách sử dụng nhà cung cấp System.Data.SQLite cho .NET. http://sqlite.phxsoftware.com/ – Tim
Nếu bạn ánh xạ một hàm do người dùng định nghĩa như bạn đã đề cập trong câu trả lời này, nó có giữ lại trong cơ sở dữ liệu sqlite hay bạn phải ánh xạ nó mỗi khi bạn tải db? – ThinkBonobo
Câu hỏi hay. Tôi nghĩ bạn có thể phải tái bản đồ. –