-- sample data to test PostgreSQL INFORMATION_SCHEMA -- TABLE TEST CREATE TABLE IF NOT EXISTS TEST1 ( TEST_NAME CHAR(30) NOT NULL, TEST_ID INTEGER DEFAULT '0' NOT NULL, TEST_DATE TIMESTAMP NOT NULL ); ALTER TABLE TEST1 DROP CONSTRAINT IF EXISTS PK_TEST CASCADE; ALTER TABLE TEST1 ADD CONSTRAINT PK_TEST PRIMARY KEY (TEST_ID); -- TABLE TEST2 with some CONSTRAINTs and an INDEX CREATE TABLE IF NOT EXISTS TEST2 ( ID INTEGER NOT NULL, FIELD1 INTEGER, FIELD2 CHAR(15), FIELD3 VARCHAR(50), FIELD4 INTEGER, FIELD5 INTEGER, ID2 INTEGER NOT NULL ); ALTER TABLE TEST2 DROP CONSTRAINT IF EXISTS PK_TEST2 CASCADE; ALTER TABLE TEST2 DROP CONSTRAINT IF EXISTS TEST2_FIELD1ID_IDX CASCADE; ALTER TABLE TEST2 DROP CONSTRAINT IF EXISTS TEST2_FIELD4_IDX CASCADE; DROP INDEX IF EXISTS TEST2_FIELD5_IDX; ALTER TABLE TEST2 ADD CONSTRAINT PK_TEST2 PRIMARY KEY (ID2); ALTER TABLE TEST2 ADD CONSTRAINT TEST2_FIELD1ID_IDX UNIQUE (ID, FIELD1); ALTER TABLE TEST2 ADD CONSTRAINT TEST2_FIELD4_IDX UNIQUE (FIELD4); CREATE INDEX TEST2_FIELD5_IDX ON TEST2(FIELD5); -- TABLE NUMBERS CREATE TABLE IF NOT EXISTS NUMBERS ( NUMBER INTEGER DEFAULT '0' NOT NULL, EN CHAR(100) NOT NULL, FR CHAR(100) NOT NULL ); -- TABLE NEWTABLE CREATE TABLE IF NOT EXISTS NEWTABLE ( ID INT DEFAULT 0 NOT NULL, SOMENAME VARCHAR (12), SOMEDATE TIMESTAMP NOT NULL ); ALTER TABLE NEWTABLE DROP CONSTRAINT IF EXISTS PKINDEX_IDX CASCADE; ALTER TABLE NEWTABLE ADD CONSTRAINT PKINDEX_IDX PRIMARY KEY (ID); DROP SEQUENCE IF EXISTS NEWTABLE_SEQ CASCADE; CREATE SEQUENCE NEWTABLE_SEQ INCREMENT 1 START 1; -- VIEW on TEST CREATE OR REPLACE VIEW "testview"( TEST_NAME, TEST_ID, TEST_DATE ) AS SELECT * FROM TEST1 WHERE TEST_NAME LIKE 't%'; -- VIEW on NUMBERS CREATE OR REPLACE VIEW "numbersview"( NUMBER, TRANS_EN, TRANS_FR ) AS SELECT * FROM NUMBERS WHERE NUMBER > 100; -- TRIGGER on NEWTABLE DROP FUNCTION IF EXISTS add_stamp() CASCADE; CREATE OR REPLACE FUNCTION add_stamp() RETURNS OPAQUE AS ' BEGIN IF (NEW.somedate IS NULL OR NEW.somedate = 0) THEN NEW.somedate := CURRENT_TIMESTAMP; RETURN NEW; END IF; END; ' LANGUAGE 'plpgsql'; DROP TRIGGER IF EXISTS ADDCURRENTDATE ON newtable; CREATE TRIGGER ADDCURRENTDATE BEFORE INSERT OR UPDATE ON newtable FOR EACH ROW EXECUTE PROCEDURE add_stamp(); -- TABLEs for testing CONSTRAINTs CREATE TABLE IF NOT EXISTS testconstraints ( someid integer NOT NULL, somename character varying(10) NOT NULL, CONSTRAINT testconstraints_id_pk PRIMARY KEY (someid) ); CREATE TABLE IF NOT EXISTS testconstraints2 ( ext_id integer NOT NULL, modified date, uniquefield character varying(10) NOT NULL, usraction integer NOT NULL, CONSTRAINT testconstraints_id_fk FOREIGN KEY (ext_id) REFERENCES testconstraints (someid) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT unique_2_fields_idx UNIQUE (modified, usraction), CONSTRAINT uniquefld_idx UNIQUE (uniquefield) );