Mercurial > pub > bltoolkit
diff Data/Create Scripts/PostgreSQL.sql @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Data/Create Scripts/PostgreSQL.sql Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,182 @@ +DROP TABLE "Doctor" +GO + +DROP TABLE "Patient" +GO + +DROP TABLE "Person" +GO + +CREATE TABLE "Person" +( + --PersonID INTEGER PRIMARY KEY DEFAULT NEXTVAL('Seq'), + "PersonID" SERIAL PRIMARY KEY, + "FirstName" VARCHAR(50) NOT NULL, + "LastName" VARCHAR(50) NOT NULL, + "MiddleName" VARCHAR(50), + "Gender" CHAR(1) NOT NULL +) +GO + +INSERT INTO "Person" ("FirstName", "LastName", "Gender") VALUES ('John', 'Pupkin', 'M') +GO +INSERT INTO "Person" ("FirstName", "LastName", "Gender") VALUES ('Tester', 'Testerson', 'M') +GO + +-- Doctor Table Extension + +CREATE TABLE "Doctor" +( + "PersonID" INTEGER NOT NULL, + "Taxonomy" VARCHAR(50) NOT NULL +) +GO + +INSERT INTO "Doctor" ("PersonID", "Taxonomy") VALUES (1, 'Psychiatry') +GO + +-- Patient Table Extension + +CREATE TABLE "Patient" +( + "PersonID" INTEGER NOT NULL, + "Diagnosis" VARCHAR(256) NOT NULL +) +GO + +INSERT INTO "Patient" ("PersonID", "Diagnosis") VALUES (2, 'Hallucination with Paranoid Bugs'' Delirium of Persecution') +GO + + +CREATE OR REPLACE FUNCTION reverse(text) RETURNS text + AS $_$ +DECLARE +original alias for $1; + reverse_str text; + i int4; +BEGIN + reverse_str := ''; + FOR i IN REVERSE LENGTH(original)..1 LOOP + reverse_str := reverse_str || substr(original,i,1); + END LOOP; +RETURN reverse_str; +END;$_$ + LANGUAGE plpgsql IMMUTABLE; +GO + + +DROP TABLE "Parent" +GO +DROP TABLE "Child" +GO +DROP TABLE "GrandChild" +GO + +CREATE TABLE "Parent" ("ParentID" int, "Value1" int) +GO +CREATE TABLE "Child" ("ParentID" int, "ChildID" int) +GO +CREATE TABLE "GrandChild" ("ParentID" int, "ChildID" int, "GrandChildID" int) +GO + + +DROP TABLE "LinqDataTypes" +GO + +CREATE TABLE "LinqDataTypes" +( + "ID" int, + "MoneyValue" decimal(10,4), + "DateTimeValue" timestamp, + "DateTimeValue2" timestamp, + "BoolValue" boolean, + "GuidValue" uuid, + "BinaryValue" bytea NULL, + "SmallIntValue" smallint, + "IntValue" int NULL, + "BigIntValue" bigint NULL +) +GO + + +DROP TABLE entity +GO + +CREATE TABLE entity +( + the_name character varying(255) NOT NULL, + CONSTRAINT entity_name_key UNIQUE (the_name) +) +GO + +CREATE OR REPLACE FUNCTION add_if_not_exists(p_name character varying) + RETURNS void AS +$BODY$ +BEGIN + BEGIN + insert into entity(the_name) values(p_name); + EXCEPTION WHEN unique_violation THEN + -- is exists, do nothing + END; +END; +$BODY$ + LANGUAGE plpgsql; +GO + + +DROP TABLE "SequenceTest1" +GO + +DROP TABLE "SequenceTest2" +GO + +DROP TABLE "SequenceTest3" +GO + +DROP SEQUENCE SequenceTestSeq +GO + +CREATE SEQUENCE SequenceTestSeq INCREMENT 1 START 1 +GO + +DROP SEQUENCE "SequenceTest2_ID_seq" +GO + +CREATE SEQUENCE "SequenceTest2_ID_seq" INCREMENT 1 START 1 +GO + +CREATE TABLE "SequenceTest1" +( + "ID" INTEGER PRIMARY KEY, + "Value" VARCHAR(50) +) +GO + +CREATE TABLE "SequenceTest2" +( + "ID" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"SequenceTest2_ID_seq"'), + "Value" VARCHAR(50) +) +GO + +CREATE TABLE "SequenceTest3" +( + "ID" INTEGER PRIMARY KEY DEFAULT NEXTVAL('SequenceTestSeq'), + "Value" VARCHAR(50) +) +GO + + +DROP TABLE "TestIdentity" +GO + +DROP SEQUENCE "TestIdentity_ID_seq" +GO + +CREATE SEQUENCE "TestIdentity_ID_seq" INCREMENT 1 START 1 +GO + +CREATE TABLE "TestIdentity" ( + "ID" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"TestIdentity_ID_seq"') +) +GO