-- Delete once all barcodes without a valid product_id (those are not visible anywhere)
DELETE FROM product_barcodes
WHERE product_id NOT IN (SELECT id FROM products);

CREATE TRIGGER prevent_adding_barcodes_for_not_existing_products AFTER INSERT ON product_barcodes
BEGIN
	SELECT CASE WHEN((
		SELECT 1
		FROM products p
		WHERE id = NEW.product_id
	) ISNULL) THEN RAISE(ABORT, 'product_id doesn''t reference a existing product') END;
END;
