Files
yii/tests/framework/db/data/oci.sql
2012-09-04 22:22:26 +06:00

322 lines
11 KiB
MySQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Double EOL symbol (\n\n) used as separator. This means that query string like "{SQL1}\n\n{SQL2}" would
-- cause two queries to the RDBMS: first "{SQL1}" and second "{SQL2}".
-- Create 'users' table.
CREATE TABLE "users" (
"id" INTEGER NOT NULL,
"username" VARCHAR2(128 CHAR) NOT NULL,
"password" VARCHAR2(128 CHAR) NOT NULL,
"email" VARCHAR2(128 CHAR) NOT NULL
) LOGGING NOCOMPRESS NOCACHE;
COMMENT ON COLUMN "users"."id" IS 'User''s entry primary key';
COMMENT ON COLUMN "users"."username" IS 'Имя пользователя';
COMMENT ON COLUMN "users"."password" IS '用户的密码';
COMMENT ON COLUMN "users"."email" IS 'דוא"ל של המשתמש';
ALTER TABLE "users" ADD CHECK ("id" IS NOT NULL);
ALTER TABLE "users" ADD CHECK ("username" IS NOT NULL);
ALTER TABLE "users" ADD CHECK ("password" IS NOT NULL);
ALTER TABLE "users" ADD CHECK ("email" IS NOT NULL);
ALTER TABLE "users" ADD PRIMARY KEY ("id");
CREATE SEQUENCE "users_id_sequence" START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE TRIGGER "users_id_trigger"
BEFORE INSERT ON "users"
FOR EACH ROW BEGIN
SELECT "users_id_sequence".nextval INTO :new."id" FROM dual;
END;
-- Create 'profiles' table.
CREATE TABLE "profiles" (
"id" INTEGER NOT NULL,
"first_name" VARCHAR2(128 CHAR) NOT NULL,
"last_name" VARCHAR2(128 CHAR) NOT NULL,
"user_id" INTEGER NOT NULL
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "profiles" ADD CHECK ("id" IS NOT NULL);
ALTER TABLE "profiles" ADD CHECK ("first_name" IS NOT NULL);
ALTER TABLE "profiles" ADD CHECK ("last_name" IS NOT NULL);
ALTER TABLE "profiles" ADD CHECK ("user_id" IS NOT NULL);
ALTER TABLE "profiles" ADD PRIMARY KEY ("id");
ALTER TABLE "profiles" ADD FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE;
CREATE SEQUENCE "profiles_id_sequence" START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE TRIGGER "profiles_id_trigger"
BEFORE INSERT ON "profiles"
FOR EACH ROW BEGIN
SELECT "profiles_id_sequence".nextval INTO :new."id" FROM dual;
END;
-- Create 'posts' table.
CREATE TABLE "posts" (
"id" INTEGER NOT NULL,
"title" VARCHAR2(128 CHAR) NOT NULL,
"create_time" TIMESTAMP NOT NULL,
"author_id" INTEGER NOT NULL,
"content" CLOB
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "posts" ADD CHECK ("id" IS NOT NULL);
ALTER TABLE "posts" ADD CHECK ("title" IS NOT NULL);
ALTER TABLE "posts" ADD CHECK ("create_time" IS NOT NULL);
ALTER TABLE "posts" ADD CHECK ("author_id" IS NOT NULL);
ALTER TABLE "posts" ADD PRIMARY KEY ("id");
ALTER TABLE "posts" ADD FOREIGN KEY ("author_id") REFERENCES "users" ("id") ON DELETE CASCADE;
CREATE SEQUENCE "posts_id_sequence" START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE TRIGGER "posts_id_trigger"
BEFORE INSERT ON "posts"
FOR EACH ROW BEGIN
SELECT "posts_id_sequence".nextval INTO :new."id" FROM dual;
END;
-- Create 'comments' table.
CREATE TABLE "comments" (
"id" INTEGER NOT NULL,
"content" CLOB,
"post_id" INTEGER NOT NULL,
"author_id" INTEGER NOT NULL
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "comments" ADD CHECK ("id" IS NOT NULL);
ALTER TABLE "comments" ADD CHECK ("post_id" IS NOT NULL);
ALTER TABLE "comments" ADD CHECK ("author_id" IS NOT NULL);
ALTER TABLE "comments" ADD PRIMARY KEY ("id");
ALTER TABLE "comments" ADD FOREIGN KEY ("post_id") REFERENCES "posts" ("id") ON DELETE CASCADE;
ALTER TABLE "comments" ADD FOREIGN KEY ("author_id") REFERENCES "users" ("id") ON DELETE CASCADE;
CREATE SEQUENCE "comments_id_sequence" START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE TRIGGER "comments_id_trigger"
BEFORE INSERT ON "comments"
FOR EACH ROW BEGIN
SELECT "comments_id_sequence".nextval INTO :new."id" FROM dual;
END;
-- Create 'categories' table.
CREATE TABLE "categories" (
"id" INTEGER NOT NULL,
"name" VARCHAR2(128 CHAR) NOT NULL,
"parent_id" INTEGER
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "categories" ADD CHECK ("id" IS NOT NULL);
ALTER TABLE "categories" ADD CHECK ("name" IS NOT NULL);
ALTER TABLE "categories" ADD PRIMARY KEY ("id");
ALTER TABLE "categories" ADD FOREIGN KEY ("parent_id") REFERENCES "categories" ("id") ON DELETE CASCADE;
CREATE SEQUENCE "categories_id_sequence" START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE TRIGGER "categories_id_trigger"
BEFORE INSERT ON "categories"
FOR EACH ROW BEGIN
SELECT "categories_id_sequence".nextval INTO :new."id" FROM dual;
END;
-- Create 'post_category' table.
CREATE TABLE "post_category" (
"category_id" INTEGER NOT NULL,
"post_id" INTEGER NOT NULL
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "post_category" ADD CHECK ("category_id" IS NOT NULL);
ALTER TABLE "post_category" ADD CHECK ("post_id" IS NOT NULL);
ALTER TABLE "post_category" ADD PRIMARY KEY ("category_id", "post_id");
ALTER TABLE "post_category" ADD FOREIGN KEY ("category_id") REFERENCES "posts" ("id") ON DELETE CASCADE;
ALTER TABLE "post_category" ADD FOREIGN KEY ("post_id") REFERENCES "categories" ("id") ON DELETE CASCADE;
-- Create 'orders' table.
CREATE TABLE "orders" (
"key1" INTEGER NOT NULL,
"key2" INTEGER NOT NULL,
"name" VARCHAR2(128 CHAR) NOT NULL
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "orders" ADD CHECK ("key1" IS NOT NULL);
ALTER TABLE "orders" ADD CHECK ("key2" IS NOT NULL);
ALTER TABLE "orders" ADD CHECK ("name" IS NOT NULL);
ALTER TABLE "orders" ADD PRIMARY KEY ("key1", "key2");
-- Create 'items' table.
CREATE TABLE "items" (
"id" INTEGER NOT NULL,
"name" VARCHAR2(128 CHAR) NOT NULL,
"col1" INTEGER NOT NULL,
"col2" INTEGER NOT NULL
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "items" ADD CHECK ("id" IS NOT NULL);
ALTER TABLE "items" ADD CHECK ("name" IS NOT NULL);
ALTER TABLE "items" ADD CHECK ("col1" IS NOT NULL);
ALTER TABLE "items" ADD CHECK ("col2" IS NOT NULL);
ALTER TABLE "items" ADD PRIMARY KEY ("id");
ALTER TABLE "items" ADD FOREIGN KEY ("col1", "col2") REFERENCES "orders" ("key1", "key2") ON DELETE CASCADE;
CREATE SEQUENCE "items_id_sequence" START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE TRIGGER "items_id_trigger"
BEFORE INSERT ON "items"
FOR EACH ROW BEGIN
SELECT "items_id_sequence".nextval INTO :new."id" FROM dual;
END;
-- Create 'types' table.
CREATE TABLE "types" (
"int_col" INT NOT NULL,
"int_col2" INTEGER DEFAULT 1,
"char_col" CHAR(100) NOT NULL,
"char_col2" VARCHAR2(100 CHAR) DEFAULT 'something',
"char_col3" CLOB,
"float_col" NUMBER(4, 3) NOT NULL,
"float_col2" BINARY_DOUBLE DEFAULT 1.23,
"blob_col" BLOB,
"numeric_col" NUMBER(5, 2) DEFAULT 33.22,
"time" TIMESTAMP DEFAULT TO_TIMESTAMP('2010-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS'),
"bool_col" NUMBER(1, 0) NOT NULL,
"bool_col2" NUMBER(1, 0) DEFAULT 1
) LOGGING NOCOMPRESS NOCACHE;
ALTER TABLE "types" ADD CHECK ("int_col" IS NOT NULL);
ALTER TABLE "types" ADD CHECK ("char_col" IS NOT NULL);
ALTER TABLE "types" ADD CHECK ("float_col" IS NOT NULL);
ALTER TABLE "types" ADD CHECK ("bool_col" IS NOT NULL);
-- Data for the 'users' table.
INSERT INTO "users" ("username", "password", "email") VALUES ('user1', 'pass1', 'email1');
INSERT INTO "users" ("username", "password", "email") VALUES ('user2', 'pass2', 'email2');
INSERT INTO "users" ("username", "password", "email") VALUES ('user3', 'pass3', 'email3');
INSERT INTO "users" ("username", "password", "email") VALUES ('пользователь4', '密码4', 'דוא"ל4');
-- Data for the 'profiles' table.
INSERT INTO "profiles" ("first_name", "last_name", "user_id") VALUES ('first 1', 'last 1', 1);
INSERT INTO "profiles" ("first_name", "last_name", "user_id") VALUES ('first 2', 'last 2', 2);
-- Data for the 'posts' table.
INSERT INTO "posts" ("title", "create_time", "author_id", "content") VALUES ('post 1', TIMESTAMP '2000-01-01 00:00:00', 1, 'content 1');
INSERT INTO "posts" ("title", "create_time", "author_id", "content") VALUES ('post 2', TIMESTAMP '2000-01-02 00:00:00', 2, 'content 2');
INSERT INTO "posts" ("title", "create_time", "author_id", "content") VALUES ('post 3', TIMESTAMP '2000-01-03 00:00:00', 2, 'content 3');
INSERT INTO "posts" ("title", "create_time", "author_id", "content") VALUES ('post 4', TIMESTAMP '2000-01-04 00:00:00', 2, 'content 4');
INSERT INTO "posts" ("title", "create_time", "author_id", "content") VALUES ('post 5', TIMESTAMP '2000-01-05 00:00:00', 3, 'content 5');
-- Data for the 'comments' table.
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 1', 1, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 2', 1, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 3', 1, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 4', 2, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 5', 2, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 6', 3, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 7', 3, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 8', 3, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 9', 3, 2);
INSERT INTO "comments" ("content", "post_id", "author_id") VALUES ('comment 10', 5, 3);
-- Data for the 'categories' table.
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 1', NULL);
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 2', NULL);
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 3', NULL);
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 4', 1);
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 5', 1);
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 6', 5);
INSERT INTO "categories" ("name", "parent_id") VALUES ('cat 7', 5);
-- Data for the 'post_category' table.
INSERT INTO "post_category" ("category_id", "post_id") VALUES (1, 1);
INSERT INTO "post_category" ("category_id", "post_id") VALUES (2, 1);
INSERT INTO "post_category" ("category_id", "post_id") VALUES (3, 1);
INSERT INTO "post_category" ("category_id", "post_id") VALUES (4, 2);
INSERT INTO "post_category" ("category_id", "post_id") VALUES (1, 2);
INSERT INTO "post_category" ("category_id", "post_id") VALUES (1, 3);
-- Data for the 'orders' table.
INSERT INTO "orders" ("key1", "key2", "name") VALUES (1, 2, 'order 12');
INSERT INTO "orders" ("key1", "key2", "name") VALUES (1, 3, 'order 13');
INSERT INTO "orders" ("key1", "key2", "name") VALUES (2, 1, 'order 21');
INSERT INTO "orders" ("key1", "key2", "name") VALUES (2, 2, 'order 22');
-- Data for the 'items' table.
INSERT INTO "items" ("name", "col1", "col2") VALUES ('item 1', 1, 2);
INSERT INTO "items" ("name", "col1", "col2") VALUES ('item 2', 1, 2);
INSERT INTO "items" ("name", "col1", "col2") VALUES ('item 3', 1, 3);
INSERT INTO "items" ("name", "col1", "col2") VALUES ('item 4', 2, 2);
INSERT INTO "items" ("name", "col1", "col2") VALUES ('item 5', 2, 2);