122 lines
1.8 KiB
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
|