VvebOIDC/admin/sql/pgsql/product_image.sql

122 lines
1.8 KiB
SQL

-- product_image
-- get all product_image
CREATE PROCEDURE getAll(
IN product_id INT,
IN product_image_id ARRAY,
OUT fetch_all,
)
BEGIN
SELECT *
FROM product_image
WHERE 1 = 1
@IF !empty(:product_id)
THEN
AND product_id = :product_id
END @IF
@IF !empty(:product_image_id)
THEN
AND product_image_id IN (:product_image_id)
END @IF
END
-- get one product_image
CREATE PROCEDURE get(
IN product_id INT,
IN product_image_id INT,
OUT fetch_row,
)
BEGIN
SELECT *
FROM product_image AS _
WHERE _.`key` = :key
@IF !empty(:product_id)
THEN
AND _.product_id = :product_id
END @IF
@IF !empty(:namespace)
THEN
AND _.namespace = :namespace
END @IF
END
CREATE PROCEDURE add(
IN product_id INT,
IN namespace CHAR,
IN key CHAR,
IN value CHAR,
OUT insert_id
)
BEGIN
INSERT INTO product_image
(product_id, namespace, `key`, value )
VALUES (:product_id, :namespace, :key, :value )
ON DUPLICATE KEY
UPDATE value = values(value);
END
CREATE PROCEDURE edit(
IN product_image ARRAY,
IN product_image_id INT,
OUT affected_rows
)
BEGIN
-- allow only table fields and set defaults for missing values
@FILTER(:product_image, product_image)
UPDATE product_image
SET @LIST(:product_image)
WHERE product_image_id = :product_image_id
END
CREATE PROCEDURE delete(
IN product_id INT,
IN namespace CHAR,
IN key ARRAY
)
BEGIN
DELETE FROM
product_image
WHERE 1 = 1
@IF !empty(:namespace)
THEN
AND namespace = :namespace
END @IF
@IF !empty(:key)
THEN
AND `key` IN (:key)
END @IF
@IF !empty(:product_id)
THEN
AND product_id = :product_id
END @IF
;
END