Changeset 672

Show
Ignore:
Timestamp:
05/18/07 21:02:52 (6 years ago)
Author:
ggpolo
Message:

Created INSERT triggers

Location:
branch/ggpolo/test/umitdb
Files:
1 added
1 modified

Legend:

Unmodified
Added
Removed
  • branch/ggpolo/test/umitdb/sqlite-schema-incomplete.sql

    r671 r672  
    2121 
    2222------------------- 
    23 -- Missing Triggers 
    24 ------------------- 
    25  
    26  
     23-- Missing UPDATE and DELETE Triggers 
     24------------------- 
     25 
     26 
     27------------------- 
    2728-- Scan 
    2829------------------- 
     
    6768); 
    6869 
     70------------------- 
     71-- Scan Triggers 
     72------------------- 
     73 
     74-- Triggers for preventing bad insertion on scan 
     75CREATE TRIGGER scan_insert_bad_scanner 
     76    BEFORE INSERT ON scan 
     77    FOR EACH ROW BEGIN 
     78        SELECT CASE 
     79            WHEN ((SELECT pk FROM scanner WHERE pk = NEW.fk_scanner) IS NULL) 
     80            THEN RAISE (ABORT, "BAD INSERT on table 'scan', invalid fk_scanner especified") 
     81        END; 
     82    END; 
     83 
     84CREATE TRIGGER scan_insert_bad_scan_type 
     85    BEFORE INSERT ON scan 
     86    FOR EACH ROW BEGIN 
     87        SELECT CASE 
     88            WHEN ((SELECT pk FROM scan_type WHERE pk = NEW.fk_type) IS NULL) 
     89            THEN RAISE (ABORT, "Bad INSERT on table 'scan', invalid fk_type especified") 
     90        END; 
     91    END; 
     92 
     93CREATE TRIGGER scan_insert_bad_protocol 
     94    BEFORE INSERT ON scan 
     95    FOR EACH ROW BEGIN 
     96        SELECT CASE 
     97            WHEN ((SELECT pk FROM protocol WHERE pk = NEW.fk_protocol) IS NULL) 
     98            THEN RAISE (ABORT, "Bad INSERT on table 'scan', invalid fk_protocol especified") 
     99        END; 
     100    END; 
     101 
     102-- Triggers for preventing bad insertion on _scan_host 
     103CREATE TRIGGER _scan_host_insert_bad_scan 
     104    BEFORE INSERT ON _scan_host 
     105    FOR EACH ROW BEGIN 
     106        SELECT CASE 
     107            WHEN ((SELECT pk FROM scan WHERE pk = NEW.fk_scan) IS NULL) 
     108            THEN RAISE (ABORT, "Bad INSERT on table '_scan_host', invalid fk_scan especified") 
     109        END; 
     110    END; 
     111     
     112CREATE TRIGGER _scan_host_insert_bad_host 
     113    BEFORE INSERT ON _scan_host 
     114    FOR EACH ROW BEGIN 
     115        SELECT CASE 
     116            WHEN ((SELECT pk FROM host WHERE pk = NEW.fk_host) IS NULL) 
     117            THEN RAISE (ABORT, "Bad INSERT on table '_scan_host', invalid fk_host specified") 
     118        END; 
     119    END; 
     120 
     121 
    69122 
    70123------------------- 
     
    96149); 
    97150 
    98  
    99151CREATE TABLE hostname ( 
    100152    pk    INTEGER NOT NULL PRIMARY KEY, 
     
    123175                   REFERENCES port(pk) 
    124176); 
     177 
     178------------------- 
     179-- Host Triggers 
     180------------------- 
     181 
     182-- Trigger for preventing bad insertion on host 
     183CREATE TRIGGER host_insert_bad_host_state 
     184    BEFORE INSERT ON host 
     185    FOR EACH ROW BEGIN 
     186        SELECT CASE 
     187            WHEN ((SELECT pk FROM host_state WHERE pk = NEW.fk_host_state) IS NULL) 
     188            THEN RAISE (ABORT, "Bad INSERT on table 'host', invalid fk_host_state especified") 
     189        END; 
     190    END; 
     191 
     192-- Trigger for preventing bad insertion on address 
     193CREATE TRIGGER address_insert_bad_vendor 
     194    BEFORE INSERT ON address 
     195    FOR EACH ROW BEGIN 
     196        SELECT CASE 
     197            WHEN ((SELECT pk FROM vendor WHERE pk = NEW.fk_vendor) IS NULL) 
     198            THEN RAISE (ABORT, "Bad INSERT on table 'address', invalid fk_vendor especified") 
     199        END; 
     200    END; 
     201 
     202-- Triggers for preventing bad insertion on _host_hostname 
     203CREATE TRIGGER _host_hostname_insert_bad_host 
     204    BEFORE INSERT ON _host_hostname 
     205    FOR EACH ROW BEGIN 
     206        SELECT CASE 
     207            WHEN ((SELECT pk FROM host WHERE pk = NEW.fk_host) IS NULL) 
     208            THEN RAISE (ABORT, "Bad INSERT on table '_host_hostname', invalid fk_host especified") 
     209        END; 
     210    END; 
     211 
     212CREATE TRIGGER _host_hostname_insert_bad_hostname 
     213    BEFORE INSERT ON _host_hostname 
     214    FOR EACH ROW BEGIN 
     215        SELECT CASE 
     216            WHEN ((SELECT pk FROM hostname WHERE pk = NEW.fk_hostname) IS NULL) 
     217            THEN RAISE (ABORT, "Bad INSERT on table '_host_hostname', invalid fk_hostname especified") 
     218        END; 
     219    END; 
     220 
     221-- Triggers for preventing bad insertion on _host_address 
     222CREATE TRIGGER _host_address_bad_host 
     223    BEFORE INSERT ON _host_address 
     224    FOR EACH ROW BEGIN 
     225        SELECT CASE 
     226            WHEN ((SELECT pk FROM host WHERE pk = NEW.fk_host) IS NULL) 
     227            THEN RAISE (ABORT, "Bad INSERT on table '_host_address', invalid fk_host especified") 
     228        END; 
     229    END; 
     230 
     231CREATE TRIGGER _host_address_bad_address 
     232    BEFORE INSERT ON _host_address 
     233    FOR EACH ROW BEGIN 
     234        SELECT CASE 
     235            WHEN ((SELECT pk FROM address WHERE pk = NEW.fk_address) IS NULL) 
     236            THEN RAISE (ABORT, "Bad INSERT on table '_host_address', invalid fk_address especified") 
     237        END; 
     238    END; 
     239 
     240-- Triggers for preventing bad insertion on _host_port 
     241CREATE TRIGGER _host_port_bad_host 
     242    BEFORE INSERT ON _host_port 
     243    FOR EACH ROW BEGIN 
     244        SELECT CASE 
     245            WHEN ((SELECT pk FROM host WHERE pk = NEW.fk_host) IS NULL) 
     246            THEN RAISE (ABORT, "Bad INSERT on table '_host_port', invalid fk_host especified") 
     247        END; 
     248    END; 
     249     
     250CREATE TRIGGER _host_port_bad_port 
     251    BEFORE INSERT ON _host_port 
     252    FOR EACH ROW BEGIN 
     253        SELECT CASE 
     254            WHEN ((SELECT pk FROM port WHERE pk = NEW.fk_port) IS NULL) 
     255            THEN RAISE (ABORT, "Bad INSERT on table '_host_port', invalid fk_port especified") 
     256        END; 
     257    END; 
    125258 
    126259 
     
    166299    state  TEXT 
    167300); 
     301 
     302------------------- 
     303-- Port Triggers 
     304------------------- 
     305 
     306-- Triggers for preventing bad insertion on port 
     307CREATE TRIGGER port_insert_bad_service 
     308    BEFORE INSERT ON port 
     309    FOR EACH ROW BEGIN 
     310        SELECT CASE 
     311            WHEN ((SELECT pk FROM service WHERE pk = NEW.fk_service) IS NULL) 
     312            THEN RAISE (ABORT, "Bad INSERT on table 'port', invalid fk_service especified") 
     313        END; 
     314    END; 
     315     
     316CREATE TRIGGER port_insert_bad_protocol 
     317    BEFORE INSERT ON port 
     318    FOR EACH ROW BEGIN 
     319        SELECT CASE 
     320            WHEN ((SELECT pk FROM protocol WHERE pk = NEW.fk_protocol) IS NULL) 
     321            THEN RAISE (ABORT, "Bad INSERT on table 'port', invalid fk_protocol especified") 
     322        END; 
     323    END; 
     324 
     325CREATE TRIGGER port_insert_bad_port_state 
     326    BEFORE INSERT ON port 
     327    FOR EACH ROW BEGIN 
     328        SELECT CASE 
     329            WHEN ((SELECT pk FROM port_state WHERE pk = NEW.fk_port_state) IS NULL) 
     330            THEN RAISE (ABORT, "Bad INSERT on table 'port', invalid fk_port_state especified") 
     331        END; 
     332    END; 
     333     
     334-- Trigger for preventing bad insertion on extraports 
     335CREATE TRIGGER extraports_insert_bad_port_state 
     336    BEFORE INSERT ON extraports 
     337    FOR EACH ROW BEGIN 
     338        SELECT CASE 
     339            WHEN ((SELECT pk FROM port_state WHERE pk = NEW.fk_port_state) IS NULL) 
     340            THEN RAISE (ABORT, "Bad INSERT on table 'extraports', invalid fk_port_state especified") 
     341        END; 
     342    END;