126 lines
1.9 KiB
SQL
126 lines
1.9 KiB
SQL
-- post_content_meta
|
|
|
|
-- get one post_content_meta
|
|
|
|
CREATE PROCEDURE get(
|
|
IN post_id INT,
|
|
IN namespace CHAR,
|
|
IN key CHAR,
|
|
|
|
OUT fetch_one,
|
|
)
|
|
BEGIN
|
|
|
|
SELECT value
|
|
FROM post_content_meta AS _
|
|
WHERE _.`key` = :key
|
|
|
|
@IF !empty(:post_id)
|
|
THEN
|
|
AND _.post_id = :post_id
|
|
END @IF
|
|
|
|
@IF !empty(:namespace)
|
|
THEN
|
|
AND _.namespace = :namespace
|
|
END @IF
|
|
;
|
|
|
|
END
|
|
|
|
CREATE PROCEDURE set(
|
|
IN post_id INT,
|
|
IN namespace CHAR,
|
|
IN key CHAR,
|
|
IN value CHAR,
|
|
|
|
OUT insert_id
|
|
)
|
|
BEGIN
|
|
|
|
INSERT INTO post_content_meta
|
|
(post_id, namespace, `key`, value )
|
|
|
|
VALUES (:post_id, :namespace, :key, :value )
|
|
|
|
ON CONFLICT(`post_id`, `namespace`, `key`) DO UPDATE SET `value` = :each.value;
|
|
|
|
END
|
|
|
|
|
|
CREATE PROCEDURE getMulti(
|
|
IN post_id INT,
|
|
IN namespace CHAR,
|
|
IN key ARRAY,
|
|
OUT fetch_all
|
|
)
|
|
BEGIN
|
|
|
|
SELECT post_id, namespace, `key`, value
|
|
FROM post_content_meta AS _
|
|
WHERE 1 = 1
|
|
|
|
@IF !empty(:post_id)
|
|
THEN
|
|
AND _.post_id = :post_id
|
|
END @IF
|
|
|
|
@IF !empty(:namespace)
|
|
THEN
|
|
AND _.namespace = :namespace
|
|
END @IF
|
|
|
|
@IF !empty(:key)
|
|
THEN
|
|
AND _.`key` IN (:key)
|
|
END @IF
|
|
;
|
|
|
|
END
|
|
|
|
|
|
CREATE PROCEDURE setMulti(
|
|
IN post_id INT,
|
|
IN namespace CHAR,
|
|
IN meta ARRAY
|
|
)
|
|
BEGIN
|
|
|
|
INSERT INTO post_content_meta
|
|
(post_id, namespace, `key`, value)
|
|
|
|
VALUES (:post_id, :namespace, :each)
|
|
|
|
ON CONFLICT(`post_id`, `namespace`, `key`) DO UPDATE SET `value` = :each.value;
|
|
|
|
END
|
|
|
|
CREATE PROCEDURE delete(
|
|
IN post_id INT,
|
|
IN namespace CHAR,
|
|
IN key ARRAY
|
|
)
|
|
BEGIN
|
|
|
|
DELETE FROM
|
|
post_content_meta
|
|
WHERE 1 = 1
|
|
|
|
@IF !empty(:namespace)
|
|
THEN
|
|
AND namespace = :namespace
|
|
END @IF
|
|
|
|
@IF !empty(:key)
|
|
THEN
|
|
AND `key` IN (:key)
|
|
END @IF
|
|
|
|
@IF !empty(:post_id)
|
|
THEN
|
|
AND post_id = :post_id
|
|
END @IF
|
|
;
|
|
|
|
END
|