You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SELECT cultivar_id FROM sites_cultivars WHERE site_id =NEW.site_id INTO required_cultivar_id;
42
+
IF (required_cultivar_id IS NOT NULL) THEN
43
+
SELECT specie_id FROM cultivars WHERE id = required_cultivar_id INTO required_specie_id;
44
+
ELSE
45
+
SELECT specie_id FROM cultivars WHERE id =NEW.cultivar_id INTO required_specie_id;
46
+
END IF;
47
+
IF (required_cultivar_id IS NULL) THEN
48
+
IF (NEW.cultivar_id IS NULL) THEN
49
+
NULL;
50
+
ELSIF (NEW.specie_id IS NULL) THEN
51
+
NEW.specie_id := required_specie_id;
52
+
ELSIF (NEW.specie_id= required_specie_id) THEN
53
+
NULL;
54
+
ELSE
55
+
RAISE EXCEPTION 'The species id % is not consistent with the cultivar id %.', NEW.specie_id, NEW.cultivar_id;
56
+
END IF;
57
+
ELSE
58
+
IF (NEW.cultivar_id IS NULL) THEN
59
+
IF (NEW.specie_id IS NULL) THEN
60
+
NEW.cultivar_id := required_cultivar_id;
61
+
NEW.specie_id := required_specie_id;
62
+
ELSIF (NEW.specie_id= required_specie_id) THEN
63
+
NEW.cultivar_id := required_cultivar_id;
64
+
ELSE
65
+
RAISE EXCEPTION 'The species id % is not consistent with the cultivar id %. It should be %.', NEW.specie_id, required_cultivar_id, required_specie_id;
66
+
END IF;
67
+
ELSIF (NEW.cultivar_id= required_cultivar_id) THEN
68
+
IF (NEW.specie_id IS NULL) THEN
69
+
NEW.specie_id := required_specie_id;
70
+
ELSIF (NEW.specie_id!= required_specie_id) THEN
71
+
RAISE EXCEPTION 'The species id % is not consistent with the cultivar id %. It should be %.', NEW.specie_id, NEW.cultivar_id, required_specie_id;
72
+
END IF;
73
+
ELSE
74
+
RAISE EXCEPTION 'The value of cultivar_id (%) is not consistent with the value % specified for site_id %.', NEW.cultivar_id, required_cultivar_id, NEW.site_id;
CREATE TRIGGER ensure_correct_cultivar_for_site BEFORE INSERT OR UPDATE OF site_id, cultivar_id, specie_id ON traits FOR EACH ROW EXECUTE PROCEDURE check_correct_cultivar();
@@ -5350,6 +5482,14 @@ ALTER TABLE ONLY cultivars_pfts
5350
5482
COMMENT ON CONSTRAINT cultivar_exists ON cultivars_pfts IS 'Ensure the referred-to cultivar exists, block its deletion if it is being used in a pft, andupdate the reference if the cultivar id number changes.';
5351
5483
5352
5484
5485
+
--
5486
+
-- Name: cultivar_exists; Type: FK CONSTRAINT; Schema: public; Owner: -
0 commit comments