HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /volume1/@appstore/SynologyPhotos/etc/sql/59.sql
CREATE OR REPLACE FUNCTION public.drop_constraint_for_all_condition_album_item_tables()
RETURNS VOID AS
$$
DECLARE
  album_id integer;
BEGIN
  FOR album_id IN SELECT id FROM condition_album LOOP
    EXECUTE 'ALTER TABLE condition_album_item_' || album_id || ' DROP CONSTRAINT IF EXISTS item_fk';
  END LOOP;
END;
$$ LANGUAGE plpgsql;
SELECT drop_constraint_for_all_condition_album_item_tables();
ALTER TABLE condition_album ADD COLUMN need_update_item boolean NOT NULL DEFAULT FALSE;
CREATE OR REPLACE FUNCTION public.update_condition_album_cover_func ( schema text,  album_id integer,  old_item_id integer)
  RETURNS void
  LANGUAGE plpgsql
  VOLATILE
  CALLED ON NULL INPUT
  SECURITY INVOKER
  COST 1
  AS $$
DECLARE
condition_album_table  text;
condition_album_item_table text;
item_id integer;
BEGIN
  condition_album_table = schema || '.condition_album';
  condition_album_item_table = schema || '.condition_album_item_' || album_id;
  EXECUTE format('DELETE FROM %s WHERE id_item = %L', condition_album_item_table, old_item_id);
  EXECUTE format('SELECT id_item FROM %s LIMIT 1', condition_album_item_table) INTO item_id;
  IF item_id IS NULL THEN
    item_id = 0;
  END IF;
  EXECUTE format('UPDATE %s SET cover = %L, need_update_item = true WHERE id = %L', condition_album_table, item_id, album_id);
END
$$;