1
|
/**
|
2
|
* xmlpackage.sql -- SQL file defining the table structures for showing
|
3
|
* relations among files such as one metadata file to another or
|
4
|
* a metadatafile or files to data files.
|
5
|
*
|
6
|
* Purpose: defines table structure for xml relations
|
7
|
*
|
8
|
* Created: 06 September 2000
|
9
|
* Author: Chad Berkley
|
10
|
* Organization: National Center for Ecological Analysis and Synthesis
|
11
|
* Copyright: 2000 Regents of the University of California and the
|
12
|
* National Center for Ecological Analysis and Synthesis
|
13
|
* For Details: http://www.nceas.ucsb.edu/
|
14
|
* File Info: '$Id: xmlpackage.sql 439 2000-09-06 16:34:15Z berkley $'
|
15
|
*
|
16
|
*/
|
17
|
|
18
|
DROP TRIGGER xml_relation_before_insert;
|
19
|
DROP TRIGGER xml_parameter_before_insert;
|
20
|
DROP SEQUENCE xml_relation_id_seq;
|
21
|
DROP SEQUENCE xml_parameter_id_seq;
|
22
|
DROP INDEX xml_parameter_index;
|
23
|
DROP TABLE xml_parameter;
|
24
|
DROP TABLE xml_relation;
|
25
|
|
26
|
CREATE TABLE xml_relation (
|
27
|
relationid NUMBER(20) PRIMARY KEY, -- the unique id to this relation
|
28
|
relation VARCHAR2(256) NOT NULL -- the relation: ismetadatafor,
|
29
|
);
|
30
|
|
31
|
|
32
|
CREATE TABLE xml_parameter (
|
33
|
paramid NUMBER(20) PRIMARY KEY, -- unique id
|
34
|
relationid NUMBER(20) NOT NULL, -- link to the relation type
|
35
|
param VARCHAR2(512) NOT NULL, -- the content of the parameter
|
36
|
paramname VARCHAR2(512) NOT NULL, -- name of the parameter
|
37
|
paramtype VARCHAR2(128) NOT NULL, -- object or subject identifier
|
38
|
FOREIGN KEY (relationid) REFERENCES xml_relation(relationid)
|
39
|
);
|
40
|
|
41
|
|
42
|
CREATE UNIQUE INDEX xml_parameter_index
|
43
|
ON xml_parameter(param, paramname, relationid, paramtype);
|
44
|
|
45
|
CREATE SEQUENCE xml_relation_id_seq;
|
46
|
CREATE SEQUENCE xml_parameter_id_seq;
|
47
|
|
48
|
CREATE TRIGGER xml_relation_before_insert
|
49
|
BEFORE INSERT ON xml_relation FOR EACH ROW
|
50
|
BEGIN
|
51
|
SELECT xml_relation_id_seq.nextval
|
52
|
INTO :new.relationid
|
53
|
FROM dual;
|
54
|
END;
|
55
|
/
|
56
|
|
57
|
CREATE TRIGGER xml_parameter_before_insert
|
58
|
BEFORE INSERT ON xml_parameter FOR EACH ROW
|
59
|
BEGIN
|
60
|
SELECT xml_parameter_id_seq.nextval
|
61
|
INTO :new.paramid
|
62
|
FROM dual;
|
63
|
END;
|
64
|
/
|
65
|
|
66
|
|