1 -- @tag: shop_images_dont_skip_position
2 -- @description: Keine Lücken in Position bei Shopbilder
3 -- @depends: release_3_9_0
6 SET position = reordered.new_position
8 SELECT id, rank() OVER (PARTITION BY object_id ORDER BY position ASC) AS new_position
11 WHERE shop_images.id = reordered.id
12 AND shop_images.position IS DISTINCT FROM reordered.new_position;
14 CREATE OR REPLACE FUNCTION shop_images_reorder_position()
20 SET position = reordered.new_position
22 SELECT id, rank() OVER (PARTITION BY object_id ORDER BY position ASC) AS new_position
24 WHERE shop_images.object_id = OLD.object_id
26 WHERE shop_images.id = reordered.id
27 AND shop_images.position IS DISTINCT FROM reordered.new_position;
34 CREATE TRIGGER after_delete_shop_images_trigger
35 AFTER DELETE ON shop_images
37 EXECUTE FUNCTION shop_images_reorder_position();