/ db / test / sql /
/db/test/sql/animid_ref_macro
1 -- Copyright (C) 2012 The Meme Factory, Inc., http://www.meme.com/
2 --
3 -- This file is part of Gombe-MI.
4 --
5 -- Gombe-MI is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
9 --
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
14 --
15 -- You should have received a copy of the GNU General Public License
16 -- along with Gombe-MI. If not, see <http://www.gnu.org/licenses/>.
17 --
18 -- Test the animid_ref() macro's triggers.
19 --
20 -- All data appearing in this work are fictitious. Any resemblance to
21 -- actual data, living or archived, is purely coincidental.
22 --
23 -- Karl O. Pinc <kop@meme.com>
24 --
25
26 -- Test our newfangled animid reference mechanisim.
27
28 -- Validate an animal id.
29
30 Select 'Expecting:
31 ERROR: Error on insert or update of COMMUNITY_MEMBERSHIP
32 DETAIL: Value (AnimID) = (MAD) is not a BIOGRAPHY_DATA.AnimID';
33
34 insert into community_membership (
35 animid
36 , start_date
37 , end_date
38 , community_id
39 , start_source
40 , end_source)
41 values ('MAD', '1981-01-01', '1981-12-31', 'K', 'Source a', 'Source a');
42 select '';
43
44 -- AnimIDs can't be deleted when they're used.
45
46 select 'Expecting:
47 ERROR: Error on commit of BIOGRAPHY_DATA after delete
48 DETAIL: Key (AnimID) = (DAD) is still referenced by COMMUNITY_MEMBERSHIP.AnimID';
49
50 delete
51 from biography_data
52 where biography_data.animid = 'DAD';
53 select '';
54