· 7 years ago · Oct 16, 2018, 01:10 AM
1DROP VIEW IF EXISTS stored_procedure_do;
2CREATE VIEW IF NOT EXISTS stored_procedure_do
3AS SELECT NULL AS json_args LIMIT 1;
4
5DROP TABLE IF EXISTS stored_procedure_result;
6CREATE TABLE IF NOT EXISTS stored_procedure_result(
7 json_result
8);
9
10DROP TRIGGER IF EXISTS stored_procedure_impl;
11CREATE TRIGGER stored_procedure_impl
12INSTEAD OF UPDATE ON stored_procedure_do
13BEGIN
14 DELETE FROM stored_procedure_result;
15 INSERT INTO stored_procedure_result
16 SELECT json_array(key,value)
17 FROM json_each(NEW.json_args);
18END;
19
20UPDATE stored_procedure_do SET json_args = '{"a":3,"z":4}';
21SELECT * FROM stored_procedure_result;
22-- ["a",3]
23-- ["z",4]