VvebOIDC/admin/sql/sqlite/taxonomy.sql

117 lines
1.8 KiB
SQL

-- Taxonomy
-- get all taxonomies
CREATE PROCEDURE getAll(
IN taxonomy_item_id INT,
-- pagination
IN start INT,
IN limit INT,
-- filter
IN post_type CHAR,
IN type CHAR,
OUT fetch_all,
OUT fetch_one
)
BEGIN
-- taxonomy_item
SELECT *, taxonomy_id as array_key
FROM taxonomy
-- LEFT JOIN taxonomy_to_site t2s ON (taxonomy_item.taxonomy_item_id = t2s.taxonomy_item_id)
WHERE 1 = 1
@IF isset(:post_type)
THEN
AND post_type = :post_type
END @IF
@IF isset(:type)
THEN
AND type = :type
END @IF
@IF isset(:limit)
THEN
@SQL_LIMIT(:start, :limit)
END @IF;
SELECT count(*) FROM (
@SQL_COUNT(taxonomy.taxonomy_id, taxonomy) -- this takes previous query removes limit and replaces select columns with parameter product_id
) as count;
END
-- get taxonomy
PROCEDURE get(
IN taxonomy_id INT,
OUT fetch_row,
)
BEGIN
-- taxonomy
SELECT *
FROM taxonomy as _ WHERE taxonomy_id = :taxonomy_id;
END
-- add taxonomy
PROCEDURE add(
IN taxonomy ARRAY,
OUT insert_id
)
BEGIN
-- allow only table fields and set defaults for missing values
:taxonomy_data = @FILTER(:taxonomy, taxonomy)
INSERT INTO taxonomy
( @KEYS(:taxonomy_data) )
VALUES ( :taxonomy_data);
END
-- edit taxonomy
CREATE PROCEDURE edit(
IN taxonomy ARRAY,
IN taxonomy_id INT,
OUT affected_rows
)
BEGIN
-- allow only table fields and set defaults for missing values
@FILTER(:taxonomy, taxonomy)
UPDATE taxonomy
SET @LIST(:taxonomy)
WHERE taxonomy_id = :taxonomy_id
END
-- delete taxonomy
PROCEDURE delete(
IN taxonomy_id ARRAY,
OUT affected_rows,
)
BEGIN
-- taxonomy
DELETE FROM taxonomy WHERE taxonomy_id IN (:taxonomy_id);
END