mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 17:45:39 +00:00
75 lines
1.9 KiB
SQL
75 lines
1.9 KiB
SQL
DROP TRIGGER cascade_product_removal;
|
|
CREATE TRIGGER cascade_product_removal AFTER DELETE ON products
|
|
BEGIN
|
|
DELETE FROM stock
|
|
WHERE product_id = OLD.id;
|
|
|
|
DELETE FROM stock_log
|
|
WHERE product_id = OLD.id;
|
|
|
|
DELETE FROM product_barcodes
|
|
WHERE product_id = OLD.id;
|
|
|
|
DELETE FROM quantity_unit_conversions
|
|
WHERE product_id = OLD.id;
|
|
|
|
DELETE FROM recipes_pos
|
|
WHERE product_id = OLD.id;
|
|
|
|
UPDATE recipes
|
|
SET product_id = NULL
|
|
WHERE product_id = OLD.id;
|
|
|
|
DELETE FROM meal_plan
|
|
WHERE product_id = OLD.id
|
|
AND type = 'product';
|
|
|
|
DELETE FROM shopping_list
|
|
WHERE product_id = OLD.id;
|
|
|
|
DELETE FROM userfield_values
|
|
WHERE object_id = OLD.id
|
|
AND field_id IN (SELECT id FROM userfields WHERE entity = 'products');
|
|
END;
|
|
|
|
DROP TRIGGER cascade_chore_removal;
|
|
CREATE TRIGGER cascade_chore_removal AFTER DELETE ON chores
|
|
BEGIN
|
|
DELETE FROM chores_log
|
|
WHERE chore_id = OLD.id;
|
|
|
|
DELETE FROM userfield_values
|
|
WHERE object_id = OLD.id
|
|
AND field_id IN (SELECT id FROM userfields WHERE entity = 'chores');
|
|
END;
|
|
|
|
DROP TRIGGER cascade_battery_removal;
|
|
CREATE TRIGGER cascade_battery_removal AFTER DELETE ON batteries
|
|
BEGIN
|
|
DELETE FROM battery_charge_cycles
|
|
WHERE battery_id = OLD.id;
|
|
|
|
DELETE FROM userfield_values
|
|
WHERE object_id = OLD.id
|
|
AND field_id IN (SELECT id FROM userfields WHERE entity = 'batteries');
|
|
END;
|
|
|
|
CREATE TRIGGER cascade_userfield_removal AFTER DELETE ON userfields
|
|
BEGIN
|
|
DELETE FROM userfield_values
|
|
WHERE object_id = OLD.id
|
|
AND field_id = OLD.id;
|
|
END;
|
|
|
|
DELETE FROM userfield_values
|
|
WHERE object_id NOT IN (SELECT id FROM products)
|
|
AND field_id IN (SELECT id FROM userfields WHERE entity = 'products');
|
|
|
|
DELETE FROM userfield_values
|
|
WHERE object_id NOT IN (SELECT id FROM chores)
|
|
AND field_id IN (SELECT id FROM userfields WHERE entity = 'chores');
|
|
|
|
DELETE FROM userfield_values
|
|
WHERE object_id NOT IN (SELECT id FROM batteries)
|
|
AND field_id IN (SELECT id FROM userfields WHERE entity = 'batteries');
|