-
-
Notifications
You must be signed in to change notification settings - Fork 277
/
CreateTriggers.sql
1090 lines (766 loc) · 47.6 KB
/
CreateTriggers.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\set ON_ERROR_STOP 1
BEGIN;
CREATE TRIGGER b_upd_area BEFORE UPDATE ON area
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_area_alias BEFORE UPDATE ON area_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_area_tag BEFORE UPDATE ON area_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON area_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(3);
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON area_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON area
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER a_ins_artist AFTER INSERT ON artist
FOR EACH ROW EXECUTE PROCEDURE a_ins_artist();
CREATE TRIGGER b_upd_artist BEFORE UPDATE ON artist
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_artist_credit_name BEFORE UPDATE ON artist_credit_name
FOR EACH ROW EXECUTE PROCEDURE b_upd_artist_credit_name();
CREATE TRIGGER b_del_artist_special BEFORE DELETE ON artist
FOR EACH ROW WHEN (OLD.id IN (1, 2)) EXECUTE PROCEDURE deny_special_purpose_deletion();
CREATE TRIGGER end_area_implies_ended BEFORE UPDATE OR INSERT ON artist
FOR EACH ROW EXECUTE PROCEDURE end_area_implies_ended();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON artist
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON artist_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_artist_alias BEFORE UPDATE ON artist_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER replace_old_sub_on_add BEFORE INSERT ON editor_subscribe_collection
FOR EACH ROW EXECUTE PROCEDURE replace_old_sub_on_add();
CREATE TRIGGER del_collection_sub_on_delete BEFORE DELETE ON editor_collection
FOR EACH ROW EXECUTE PROCEDURE del_collection_sub_on_delete();
CREATE TRIGGER del_collection_sub_on_private BEFORE UPDATE ON editor_collection
FOR EACH ROW EXECUTE PROCEDURE del_collection_sub_on_private();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON artist_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(3);
CREATE TRIGGER b_upd_artist_tag BEFORE UPDATE ON artist_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_editor BEFORE UPDATE ON editor
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_editor AFTER INSERT ON editor
FOR EACH ROW EXECUTE PROCEDURE a_ins_editor();
CREATE TRIGGER check_editor_name BEFORE UPDATE OR INSERT ON editor
FOR EACH ROW EXECUTE PROCEDURE check_editor_name();
CREATE TRIGGER a_ins_event AFTER INSERT ON event
FOR EACH ROW EXECUTE PROCEDURE a_ins_event();
CREATE TRIGGER b_upd_event BEFORE UPDATE ON event
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON event
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_event_alias BEFORE UPDATE ON event_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON event_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON event_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_event_tag BEFORE UPDATE ON event_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_genre BEFORE UPDATE ON genre
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_genre_alias BEFORE UPDATE ON genre_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_instrument BEFORE UPDATE ON instrument
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON instrument_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_instrument_alias BEFORE UPDATE ON instrument_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_instrument_tag BEFORE UPDATE ON instrument_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON instrument_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_l_area_area BEFORE UPDATE ON l_area_area
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_artist BEFORE UPDATE ON l_area_artist
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_event BEFORE UPDATE ON l_area_event
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_instrument BEFORE UPDATE ON l_area_instrument
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_label BEFORE UPDATE ON l_area_label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_place BEFORE UPDATE ON l_area_place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_recording BEFORE UPDATE ON l_area_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_release BEFORE UPDATE ON l_area_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_release_group BEFORE UPDATE ON l_area_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_url BEFORE UPDATE ON l_area_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_area_work BEFORE UPDATE ON l_area_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_artist BEFORE UPDATE ON l_artist_artist
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_event BEFORE UPDATE ON l_artist_event
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_instrument BEFORE UPDATE ON l_artist_instrument
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_label BEFORE UPDATE ON l_artist_label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_place BEFORE UPDATE ON l_artist_place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_recording BEFORE UPDATE ON l_artist_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_release BEFORE UPDATE ON l_artist_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_release_group BEFORE UPDATE ON l_artist_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_url BEFORE UPDATE ON l_artist_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_artist_work BEFORE UPDATE ON l_artist_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_event BEFORE UPDATE ON l_event_event
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_instrument BEFORE UPDATE ON l_event_instrument
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_label BEFORE UPDATE ON l_event_label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_place BEFORE UPDATE ON l_event_place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_recording BEFORE UPDATE ON l_event_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_release BEFORE UPDATE ON l_event_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_release_group BEFORE UPDATE ON l_event_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_url BEFORE UPDATE ON l_event_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_event_work BEFORE UPDATE ON l_event_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_instrument BEFORE UPDATE ON l_instrument_instrument
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_label BEFORE UPDATE ON l_instrument_label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_place BEFORE UPDATE ON l_instrument_place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_recording BEFORE UPDATE ON l_instrument_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_release BEFORE UPDATE ON l_instrument_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_release_group BEFORE UPDATE ON l_instrument_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_url BEFORE UPDATE ON l_instrument_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_instrument_work BEFORE UPDATE ON l_instrument_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_label BEFORE UPDATE ON l_label_label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_place BEFORE UPDATE ON l_label_place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_recording BEFORE UPDATE ON l_label_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_release BEFORE UPDATE ON l_label_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_release_group BEFORE UPDATE ON l_label_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_url BEFORE UPDATE ON l_label_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_label_work BEFORE UPDATE ON l_label_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_place_place BEFORE UPDATE ON l_place_place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_place_recording BEFORE UPDATE ON l_place_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_place_release BEFORE UPDATE ON l_place_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_place_release_group BEFORE UPDATE ON l_place_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_place_url BEFORE UPDATE ON l_place_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_place_work BEFORE UPDATE ON l_place_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_recording_recording BEFORE UPDATE ON l_recording_recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_recording_release BEFORE UPDATE ON l_recording_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_recording_release_group BEFORE UPDATE ON l_recording_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_recording_url BEFORE UPDATE ON l_recording_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_recording_work BEFORE UPDATE ON l_recording_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_release BEFORE UPDATE ON l_release_release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_release_group BEFORE UPDATE ON l_release_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_url BEFORE UPDATE ON l_release_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_work BEFORE UPDATE ON l_release_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_group_release_group BEFORE UPDATE ON l_release_group_release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_group_url BEFORE UPDATE ON l_release_group_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_release_group_work BEFORE UPDATE ON l_release_group_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_url_url BEFORE UPDATE ON l_url_url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_url_work BEFORE UPDATE ON l_url_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_l_work_work BEFORE UPDATE ON l_work_work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_label AFTER INSERT ON label
FOR EACH ROW EXECUTE PROCEDURE a_ins_label();
CREATE TRIGGER b_del_label_special BEFORE DELETE ON label
FOR EACH ROW WHEN (OLD.id IN (1, 3267)) EXECUTE PROCEDURE deny_special_purpose_deletion();
CREATE TRIGGER b_upd_label BEFORE UPDATE ON label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON label
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON label_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_label_alias BEFORE UPDATE ON label_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON label_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_label_tag BEFORE UPDATE ON label_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON link
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER deny_deprecated BEFORE UPDATE OR INSERT ON link
FOR EACH ROW EXECUTE PROCEDURE deny_deprecated_links();
CREATE TRIGGER check_has_dates BEFORE UPDATE OR INSERT ON link
FOR EACH ROW EXECUTE PROCEDURE check_has_dates();
CREATE TRIGGER b_upd_link_attribute BEFORE UPDATE OR INSERT ON link_attribute
FOR EACH ROW EXECUTE PROCEDURE prevent_invalid_attributes();
CREATE TRIGGER b_upd_link_attribute_type BEFORE UPDATE ON link_attribute_type
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_link_type BEFORE UPDATE ON link_type
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_link_type_attribute_type BEFORE UPDATE ON link_type_attribute_type
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_medium BEFORE UPDATE ON medium
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_medium_cdtoc BEFORE UPDATE ON medium_cdtoc
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_place AFTER INSERT ON place
FOR EACH ROW EXECUTE PROCEDURE a_ins_place();
CREATE TRIGGER b_upd_place BEFORE UPDATE ON place
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON place
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON place_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_place_alias BEFORE UPDATE ON place_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON place_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_place_tag BEFORE UPDATE ON place_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_recording AFTER INSERT ON recording
FOR EACH ROW EXECUTE PROCEDURE a_ins_recording();
CREATE TRIGGER b_upd_recording BEFORE UPDATE ON recording
FOR EACH ROW EXECUTE PROCEDURE b_upd_recording();
CREATE TRIGGER a_upd_recording AFTER UPDATE ON recording
FOR EACH ROW EXECUTE PROCEDURE a_upd_recording();
CREATE TRIGGER a_del_recording AFTER DELETE ON recording
FOR EACH ROW EXECUTE PROCEDURE a_del_recording();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON recording_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_recording_alias BEFORE UPDATE ON recording_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON recording_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_recording_tag BEFORE UPDATE ON recording_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_release AFTER INSERT ON release
FOR EACH ROW EXECUTE PROCEDURE a_ins_release();
CREATE TRIGGER a_upd_release AFTER UPDATE ON release
FOR EACH ROW EXECUTE PROCEDURE a_upd_release();
CREATE TRIGGER a_del_release AFTER DELETE ON release
FOR EACH ROW EXECUTE PROCEDURE a_del_release();
CREATE TRIGGER b_upd_release BEFORE UPDATE ON release
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON release_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_release_alias BEFORE UPDATE ON release_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON release_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER a_ins_release_event AFTER INSERT ON release_country
FOR EACH ROW EXECUTE PROCEDURE a_ins_release_event();
CREATE TRIGGER a_upd_release_event AFTER UPDATE ON release_country
FOR EACH ROW EXECUTE PROCEDURE a_upd_release_event();
CREATE TRIGGER a_del_release_event AFTER DELETE ON release_country
FOR EACH ROW EXECUTE PROCEDURE a_del_release_event();
CREATE TRIGGER a_ins_release_event AFTER INSERT ON release_unknown_country
FOR EACH ROW EXECUTE PROCEDURE a_ins_release_event();
CREATE TRIGGER a_upd_release_event AFTER UPDATE ON release_unknown_country
FOR EACH ROW EXECUTE PROCEDURE a_upd_release_event();
CREATE TRIGGER a_del_release_event AFTER DELETE ON release_unknown_country
FOR EACH ROW EXECUTE PROCEDURE a_del_release_event();
CREATE TRIGGER b_upd_release_label BEFORE UPDATE ON release_label
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_release_label AFTER INSERT ON release_label
FOR EACH ROW EXECUTE PROCEDURE a_ins_release_label();
CREATE TRIGGER a_upd_release_label AFTER UPDATE ON release_label
FOR EACH ROW EXECUTE PROCEDURE a_upd_release_label();
CREATE TRIGGER a_del_release_label AFTER DELETE ON release_label
FOR EACH ROW EXECUTE PROCEDURE a_del_release_label();
CREATE TRIGGER a_ins_release_group AFTER INSERT ON release_group
FOR EACH ROW EXECUTE PROCEDURE a_ins_release_group();
CREATE TRIGGER a_upd_release_group AFTER UPDATE ON release_group
FOR EACH ROW EXECUTE PROCEDURE a_upd_release_group();
CREATE TRIGGER a_del_release_group AFTER DELETE ON release_group
FOR EACH ROW EXECUTE PROCEDURE a_del_release_group();
CREATE TRIGGER b_upd_release_group BEFORE UPDATE ON release_group
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_release_group_secondary_type_join AFTER INSERT ON release_group_secondary_type_join
FOR EACH ROW EXECUTE PROCEDURE a_ins_release_group_secondary_type_join();
CREATE TRIGGER a_del_release_group_secondary_type_join AFTER DELETE ON release_group_secondary_type_join
FOR EACH ROW EXECUTE PROCEDURE a_del_release_group_secondary_type_join();
CREATE TRIGGER b_upd_release_group_secondary_type_join BEFORE UPDATE ON release_group_secondary_type_join
FOR EACH ROW EXECUTE PROCEDURE b_upd_release_group_secondary_type_join();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON release_group_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER b_upd_release_group_alias BEFORE UPDATE ON release_group_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON release_group_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_release_group_tag BEFORE UPDATE ON release_group_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_series BEFORE UPDATE ON series
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_series_alias BEFORE UPDATE ON series_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_series_tag BEFORE UPDATE ON series_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON series_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON series_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_tag_relation BEFORE UPDATE ON tag_relation
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_track AFTER INSERT ON track
FOR EACH ROW EXECUTE PROCEDURE a_ins_track();
CREATE TRIGGER a_upd_track AFTER UPDATE ON track
FOR EACH ROW EXECUTE PROCEDURE a_upd_track();
CREATE TRIGGER a_del_track AFTER DELETE ON track
FOR EACH ROW EXECUTE PROCEDURE a_del_track();
CREATE TRIGGER b_upd_track BEFORE UPDATE ON track
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE CONSTRAINT TRIGGER remove_orphaned_tracks
AFTER DELETE OR UPDATE ON track DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE delete_orphaned_recordings();
CREATE TRIGGER b_upd_url BEFORE UPDATE ON url
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER a_ins_work AFTER INSERT ON work
FOR EACH ROW EXECUTE PROCEDURE a_ins_work();
CREATE TRIGGER b_upd_work BEFORE UPDATE ON work
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER b_upd_work_alias BEFORE UPDATE ON work_alias
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER end_date_implies_ended BEFORE UPDATE OR INSERT ON work_alias
FOR EACH ROW EXECUTE PROCEDURE end_date_implies_ended();
CREATE TRIGGER search_hint BEFORE UPDATE OR INSERT ON work_alias
FOR EACH ROW EXECUTE PROCEDURE simplify_search_hints(2);
CREATE TRIGGER b_upd_work_tag BEFORE UPDATE ON work_tag
FOR EACH ROW EXECUTE PROCEDURE b_upd_last_updated_table();
CREATE TRIGGER inserting_edits_requires_confirmed_email_address BEFORE INSERT ON edit
FOR EACH ROW EXECUTE PROCEDURE inserting_edits_requires_confirmed_email_address();
CREATE TRIGGER a_upd_edit AFTER UPDATE ON edit
FOR EACH ROW EXECUTE PROCEDURE a_upd_edit();
CREATE TRIGGER a_ins_edit_artist BEFORE INSERT ON edit_artist
FOR EACH ROW EXECUTE PROCEDURE b_ins_edit_materialize_status();
CREATE TRIGGER a_ins_edit_artist BEFORE INSERT ON edit_label
FOR EACH ROW EXECUTE PROCEDURE b_ins_edit_materialize_status();
CREATE TRIGGER a_ins_instrument AFTER INSERT ON instrument
FOR EACH ROW EXECUTE PROCEDURE a_ins_instrument();
CREATE TRIGGER a_upd_instrument AFTER UPDATE ON instrument
FOR EACH ROW EXECUTE PROCEDURE a_upd_instrument();
CREATE TRIGGER a_del_instrument AFTER DELETE ON instrument
FOR EACH ROW EXECUTE PROCEDURE a_del_instrument();
CREATE TRIGGER a_ins_edit_note AFTER INSERT ON edit_note
FOR EACH ROW EXECUTE PROCEDURE a_ins_edit_note();
CREATE TRIGGER a_ins_alternative_release AFTER INSERT ON alternative_release
FOR EACH ROW EXECUTE PROCEDURE a_ins_alternative_release_or_track();
CREATE TRIGGER a_ins_alternative_track AFTER INSERT ON alternative_track
FOR EACH ROW EXECUTE PROCEDURE a_ins_alternative_release_or_track();
CREATE TRIGGER a_upd_alternative_release AFTER UPDATE ON alternative_release
FOR EACH ROW EXECUTE PROCEDURE a_upd_alternative_release_or_track();
CREATE TRIGGER a_upd_alternative_track AFTER UPDATE ON alternative_track
FOR EACH ROW EXECUTE PROCEDURE a_upd_alternative_release_or_track();
CREATE TRIGGER a_del_alternative_release AFTER DELETE ON alternative_release
FOR EACH ROW EXECUTE PROCEDURE a_del_alternative_release_or_track();
CREATE TRIGGER a_del_alternative_track AFTER DELETE ON alternative_track
FOR EACH ROW EXECUTE PROCEDURE a_del_alternative_release_or_track();
CREATE TRIGGER a_ins_alternative_medium_track AFTER INSERT ON alternative_medium_track
FOR EACH ROW EXECUTE PROCEDURE a_ins_alternative_medium_track();
CREATE TRIGGER a_upd_alternative_medium_track AFTER UPDATE ON alternative_medium_track
FOR EACH ROW EXECUTE PROCEDURE a_upd_alternative_medium_track();
CREATE TRIGGER a_del_alternative_medium_track AFTER DELETE ON alternative_medium_track
FOR EACH ROW EXECUTE PROCEDURE a_del_alternative_medium_track();
CREATE TRIGGER ensure_area_attribute_type_allows_text BEFORE INSERT OR UPDATE ON area_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_area_attribute_type_allows_text();
CREATE TRIGGER ensure_artist_attribute_type_allows_text BEFORE INSERT OR UPDATE ON artist_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_artist_attribute_type_allows_text();
CREATE TRIGGER ensure_event_attribute_type_allows_text BEFORE INSERT OR UPDATE ON event_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_event_attribute_type_allows_text();
CREATE TRIGGER ensure_instrument_attribute_type_allows_text BEFORE INSERT OR UPDATE ON instrument_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_instrument_attribute_type_allows_text();
CREATE TRIGGER ensure_label_attribute_type_allows_text BEFORE INSERT OR UPDATE ON label_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_label_attribute_type_allows_text();
CREATE TRIGGER ensure_medium_attribute_type_allows_text BEFORE INSERT OR UPDATE ON medium_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_medium_attribute_type_allows_text();
CREATE TRIGGER ensure_place_attribute_type_allows_text BEFORE INSERT OR UPDATE ON place_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_place_attribute_type_allows_text();
CREATE TRIGGER ensure_recording_attribute_type_allows_text BEFORE INSERT OR UPDATE ON recording_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_recording_attribute_type_allows_text();
CREATE TRIGGER ensure_release_attribute_type_allows_text BEFORE INSERT OR UPDATE ON release_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_release_attribute_type_allows_text();
CREATE TRIGGER ensure_release_group_attribute_type_allows_text BEFORE INSERT OR UPDATE ON release_group_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_release_group_attribute_type_allows_text();
CREATE TRIGGER ensure_series_attribute_type_allows_text BEFORE INSERT OR UPDATE ON series_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_series_attribute_type_allows_text();
CREATE TRIGGER ensure_work_attribute_type_allows_text BEFORE INSERT OR UPDATE ON work_attribute
FOR EACH ROW EXECUTE PROCEDURE ensure_work_attribute_type_allows_text();
--------------------------------------------------------------------------------
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_area DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_artist DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_event DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_instrument DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_label DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_place DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_area_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_artist DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_event DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_instrument DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_label DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_place DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_artist_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_event DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_instrument DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_label DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_place DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_event_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_instrument DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_label DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_place DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_instrument_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_label DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_place DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_label_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_place_place DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_place_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_place_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_place_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_place_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_place_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_recording_recording DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_recording_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_recording_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_recording_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_recording_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_release DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_group_release_group DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_group_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_release_group_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_url_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_url_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
CREATE CONSTRAINT TRIGGER remove_unused_links
AFTER DELETE OR UPDATE ON l_work_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_links();
--------------------------------------------------------------------------------
CREATE CONSTRAINT TRIGGER url_gc_a_upd_url
AFTER UPDATE ON url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_area_url
AFTER UPDATE ON l_area_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_area_url
AFTER DELETE ON l_area_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_artist_url
AFTER UPDATE ON l_artist_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_artist_url
AFTER DELETE ON l_artist_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_event_url
AFTER UPDATE ON l_event_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_event_url
AFTER DELETE ON l_event_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_instrument_url
AFTER UPDATE ON l_instrument_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_instrument_url
AFTER DELETE ON l_instrument_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_label_url
AFTER UPDATE ON l_label_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_label_url
AFTER DELETE ON l_label_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_place_url
AFTER UPDATE ON l_place_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_place_url
AFTER DELETE ON l_place_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_recording_url
AFTER UPDATE ON l_recording_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_recording_url
AFTER DELETE ON l_recording_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_release_url
AFTER UPDATE ON l_release_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_release_url
AFTER DELETE ON l_release_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_release_group_url
AFTER UPDATE ON l_release_group_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_release_group_url
AFTER DELETE ON l_release_group_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_series_url
AFTER UPDATE ON l_series_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_series_url
AFTER DELETE ON l_series_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_url_url
AFTER UPDATE ON l_url_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_url_url
AFTER DELETE ON l_url_url DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_upd_l_url_work
AFTER UPDATE ON l_url_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
CREATE CONSTRAINT TRIGGER url_gc_a_del_l_url_work
AFTER DELETE ON l_url_work DEFERRABLE INITIALLY DEFERRED
FOR EACH ROW EXECUTE PROCEDURE remove_unused_url();
--------------------------------------------------------------------------------
CREATE CONSTRAINT TRIGGER delete_unused_tag
AFTER INSERT ON tag DEFERRABLE INITIALLY DEFERRED