Mercurial > pub > bltoolkit
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 |
