comparison Data/Create Scripts/PostgreSQL.sql @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f990fcb411a9
1 DROP TABLE "Doctor"
2 GO
3
4 DROP TABLE "Patient"
5 GO
6
7 DROP TABLE "Person"
8 GO
9
10 CREATE TABLE "Person"
11 (
12 --PersonID INTEGER PRIMARY KEY DEFAULT NEXTVAL('Seq'),
13 "PersonID" SERIAL PRIMARY KEY,
14 "FirstName" VARCHAR(50) NOT NULL,
15 "LastName" VARCHAR(50) NOT NULL,
16 "MiddleName" VARCHAR(50),
17 "Gender" CHAR(1) NOT NULL
18 )
19 GO
20
21 INSERT INTO "Person" ("FirstName", "LastName", "Gender") VALUES ('John', 'Pupkin', 'M')
22 GO
23 INSERT INTO "Person" ("FirstName", "LastName", "Gender") VALUES ('Tester', 'Testerson', 'M')
24 GO
25
26 -- Doctor Table Extension
27
28 CREATE TABLE "Doctor"
29 (
30 "PersonID" INTEGER NOT NULL,
31 "Taxonomy" VARCHAR(50) NOT NULL
32 )
33 GO
34
35 INSERT INTO "Doctor" ("PersonID", "Taxonomy") VALUES (1, 'Psychiatry')
36 GO
37
38 -- Patient Table Extension
39
40 CREATE TABLE "Patient"
41 (
42 "PersonID" INTEGER NOT NULL,
43 "Diagnosis" VARCHAR(256) NOT NULL
44 )
45 GO
46
47 INSERT INTO "Patient" ("PersonID", "Diagnosis") VALUES (2, 'Hallucination with Paranoid Bugs'' Delirium of Persecution')
48 GO
49
50
51 CREATE OR REPLACE FUNCTION reverse(text) RETURNS text
52 AS $_$
53 DECLARE
54 original alias for $1;
55 reverse_str text;
56 i int4;
57 BEGIN
58 reverse_str := '';
59 FOR i IN REVERSE LENGTH(original)..1 LOOP
60 reverse_str := reverse_str || substr(original,i,1);
61 END LOOP;
62 RETURN reverse_str;
63 END;$_$
64 LANGUAGE plpgsql IMMUTABLE;
65 GO
66
67
68 DROP TABLE "Parent"
69 GO
70 DROP TABLE "Child"
71 GO
72 DROP TABLE "GrandChild"
73 GO
74
75 CREATE TABLE "Parent" ("ParentID" int, "Value1" int)
76 GO
77 CREATE TABLE "Child" ("ParentID" int, "ChildID" int)
78 GO
79 CREATE TABLE "GrandChild" ("ParentID" int, "ChildID" int, "GrandChildID" int)
80 GO
81
82
83 DROP TABLE "LinqDataTypes"
84 GO
85
86 CREATE TABLE "LinqDataTypes"
87 (
88 "ID" int,
89 "MoneyValue" decimal(10,4),
90 "DateTimeValue" timestamp,
91 "DateTimeValue2" timestamp,
92 "BoolValue" boolean,
93 "GuidValue" uuid,
94 "BinaryValue" bytea NULL,
95 "SmallIntValue" smallint,
96 "IntValue" int NULL,
97 "BigIntValue" bigint NULL
98 )
99 GO
100
101
102 DROP TABLE entity
103 GO
104
105 CREATE TABLE entity
106 (
107 the_name character varying(255) NOT NULL,
108 CONSTRAINT entity_name_key UNIQUE (the_name)
109 )
110 GO
111
112 CREATE OR REPLACE FUNCTION add_if_not_exists(p_name character varying)
113 RETURNS void AS
114 $BODY$
115 BEGIN
116 BEGIN
117 insert into entity(the_name) values(p_name);
118 EXCEPTION WHEN unique_violation THEN
119 -- is exists, do nothing
120 END;
121 END;
122 $BODY$
123 LANGUAGE plpgsql;
124 GO
125
126
127 DROP TABLE "SequenceTest1"
128 GO
129
130 DROP TABLE "SequenceTest2"
131 GO
132
133 DROP TABLE "SequenceTest3"
134 GO
135
136 DROP SEQUENCE SequenceTestSeq
137 GO
138
139 CREATE SEQUENCE SequenceTestSeq INCREMENT 1 START 1
140 GO
141
142 DROP SEQUENCE "SequenceTest2_ID_seq"
143 GO
144
145 CREATE SEQUENCE "SequenceTest2_ID_seq" INCREMENT 1 START 1
146 GO
147
148 CREATE TABLE "SequenceTest1"
149 (
150 "ID" INTEGER PRIMARY KEY,
151 "Value" VARCHAR(50)
152 )
153 GO
154
155 CREATE TABLE "SequenceTest2"
156 (
157 "ID" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"SequenceTest2_ID_seq"'),
158 "Value" VARCHAR(50)
159 )
160 GO
161
162 CREATE TABLE "SequenceTest3"
163 (
164 "ID" INTEGER PRIMARY KEY DEFAULT NEXTVAL('SequenceTestSeq'),
165 "Value" VARCHAR(50)
166 )
167 GO
168
169
170 DROP TABLE "TestIdentity"
171 GO
172
173 DROP SEQUENCE "TestIdentity_ID_seq"
174 GO
175
176 CREATE SEQUENCE "TestIdentity_ID_seq" INCREMENT 1 START 1
177 GO
178
179 CREATE TABLE "TestIdentity" (
180 "ID" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"TestIdentity_ID_seq"')
181 )
182 GO