Created
March 19, 2009 18:34
-
-
Save mariuz/81991 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE DOMAIN "BooleanField" AS smallint CHECK (VALUE IN (0,1)); | |
CREATE DOMAIN "NullBooleanField" AS smallint CHECK ((VALUE IN (0,1)) OR (VALUE IS NULL)); | |
CREATE DOMAIN "PositiveIntegerField" AS integer CHECK ((VALUE >= 0) OR (VALUE IS NULL)); | |
CREATE DOMAIN "PositiveSmallIntegerField" AS smallint CHECK ((VALUE >= 0) OR (VALUE IS NULL)); | |
CREATE DOMAIN "TextField" AS varchar(10921); | |
CREATE TABLE "books_publisher" ( | |
"id" integer NOT NULL PRIMARY KEY, | |
"name" varchar(30) NOT NULL, | |
"address" varchar(50) NOT NULL, | |
"city" varchar(60) NOT NULL, | |
"state_province" varchar(30) NOT NULL, | |
"country" varchar(50) NOT NULL, | |
"website" varchar(200) NOT NULL | |
); | |
CREATE GENERATOR BOOKS_PUBLISHER$G; | |
CREATE TRIGGER BOOKS_PUBLISHER$T FOR "books_publisher" | |
ACTIVE BEFORE INSERT POSITION 0 AS | |
BEGIN | |
IF ((NEW."id" IS NULL) OR (NEW."id" = 0)) THEN | |
BEGIN | |
NEW."id" = GEN_ID(BOOKS_PUBLISHER$G, 1); | |
END | |
END; | |
CREATE DOMAIN "BooleanField" AS smallint CHECK (VALUE IN (0,1)); | |
CREATE DOMAIN "NullBooleanField" AS smallint CHECK ((VALUE IN (0,1)) OR (VALUE IS NULL)); | |
CREATE DOMAIN "PositiveIntegerField" AS integer CHECK ((VALUE >= 0) OR (VALUE IS NULL)); | |
CREATE DOMAIN "PositiveSmallIntegerField" AS smallint CHECK ((VALUE >= 0) OR (VALUE IS NULL)); | |
CREATE DOMAIN "TextField" AS varchar(10921); | |
CREATE TABLE "books_book" ( | |
"id" integer NOT NULL PRIMARY KEY, | |
"title" varchar(100) NOT NULL, | |
"publisher_id" integer NOT NULL, | |
"publication_date" date NOT NULL | |
); | |
CREATE GENERATOR BOOKS_BOOK$G; | |
CREATE TRIGGER BOOKS_BOOK$T FOR "books_book" | |
ACTIVE BEFORE INSERT POSITION 0 AS | |
BEGIN | |
IF ((NEW."id" IS NULL) OR (NEW."id" = 0)) THEN | |
BEGIN | |
NEW."id" = GEN_ID(BOOKS_BOOK$G, 1); | |
END | |
END; | |
ALTER TABLE "books_book" ADD CONSTRAINT PUBLISHER_ID$ID$4CDC253FC5B2768 FOREIGN KEY ("publisher_id") REFERENCES "books_publisher" ("id"); | |
CREATE DOMAIN "BooleanField" AS smallint CHECK (VALUE IN (0,1)); | |
CREATE DOMAIN "NullBooleanField" AS smallint CHECK ((VALUE IN (0,1)) OR (VALUE IS NULL)); | |
CREATE DOMAIN "PositiveIntegerField" AS integer CHECK ((VALUE >= 0) OR (VALUE IS NULL)); | |
CREATE DOMAIN "PositiveSmallIntegerField" AS smallint CHECK ((VALUE >= 0) OR (VALUE IS NULL)); | |
CREATE DOMAIN "TextField" AS varchar(10921); | |
CREATE TABLE "books_author" ( | |
"id" integer NOT NULL PRIMARY KEY, | |
"first_name" varchar(30) NOT NULL, | |
"last_name" varchar(40) NOT NULL, | |
"email" varchar(75) NOT NULL | |
); | |
CREATE GENERATOR BOOKS_AUTHOR$G; | |
CREATE TRIGGER BOOKS_AUTHOR$T FOR "books_author" | |
ACTIVE BEFORE INSERT POSITION 0 AS | |
BEGIN | |
IF ((NEW."id" IS NULL) OR (NEW."id" = 0)) THEN | |
BEGIN | |
NEW."id" = GEN_ID(BOOKS_AUTHOR$G, 1); | |
END | |
END; | |
CREATE TABLE "books_book_authors" ( | |
"id" integer NOT NULL PRIMARY KEY, | |
"book_id" integer NOT NULL, | |
"author_id" integer NOT NULL, | |
UNIQUE ("book_id", "author_id") | |
); | |
CREATE GENERATOR BOOKS_BOOK_AUTHORS$G; | |
CREATE TRIGGER BOOKS_BOOK_AUTHORS$T FOR "books_book_authors" | |
ACTIVE BEFORE INSERT POSITION 0 AS | |
BEGIN | |
IF ((NEW."id" IS NULL) OR (NEW."id" = 0)) THEN | |
BEGIN | |
NEW."id" = GEN_ID(BOOKS_BOOK_AUTHORS$G, 1); | |
END | |
END; | |
ALTER TABLE "books_book_authors" ADD CONSTRAINT BOOK_ID$ID$5565DDFCFBCF262 FOREIGN KEY ("book_id") REFERENCES "books_book" ("id")ON DELETE CASCADE ON UPDATE CASCADE; | |
ALTER TABLE "books_book_authors" ADD CONSTRAINT AUTHOR_ID$ID$1F0E145E09E7E386 FOREIGN KEY ("author_id") REFERENCES "books_author" ("id")ON DELETE CASCADE ON UPDATE CASCADE; | |
CREATE INDEX "books_book_publisher_id" ON "books_book" ("publisher_id"); | |
COMMIT; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment