blob: 756654c0e2476b83a53a4279956e32b8ec3721ac [file] [log] [blame]
--
-- CREATE_TABLE
--
-- Datatypes
CREATE TABLE datatype_table (
id SERIAL,
id_big BIGSERIAL,
is_small SMALLSERIAL,
v_bytea BYTEA,
v_smallint SMALLINT,
v_int INT,
v_bigint BIGINT,
v_char CHAR(1),
v_varchar VARCHAR(10),
v_text TEXT,
v_bool BOOLEAN,
v_inet INET,
v_cidr CIDR,
v_macaddr MACADDR,
v_numeric NUMERIC(1,0),
v_real REAL,
v_float FLOAT(1),
v_float8 FLOAT8,
v_money MONEY,
v_tsquery TSQUERY,
v_tsvector TSVECTOR,
v_date DATE,
v_time TIME,
v_time_tz TIME WITH TIME ZONE,
v_timestamp TIMESTAMP,
v_timestamp_tz TIMESTAMP WITH TIME ZONE,
v_interval INTERVAL,
v_bit BIT,
v_bit4 BIT(4),
v_varbit VARBIT,
v_varbit4 VARBIT(4),
v_box BOX,
v_circle CIRCLE,
v_lseg LSEG,
v_path PATH,
v_point POINT,
v_polygon POLYGON,
v_json JSON,
v_xml XML,
v_uuid UUID,
v_pg_snapshot pg_snapshot,
v_enum ENUM_TEST,
v_postal_code japanese_postal_code,
v_int2range int2range,
PRIMARY KEY (id),
UNIQUE (id_big, id)
);
-- Constraint definitions
CREATE TABLE IF NOT EXISTS fkey_table (
id INT NOT NULL DEFAULT nextval('fkey_table_seq'::REGCLASS),
datatype_id INT NOT NULL REFERENCES datatype_table(id),
big_id BIGINT NOT NULL,
sometext TEXT COLLATE "POSIX",
check_col_1 INT NOT NULL CHECK(check_col_1 < 10),
check_col_2 INT NOT NULL,
PRIMARY KEY (id),
CONSTRAINT fkey_big_id
FOREIGN KEY (big_id, id)
REFERENCES datatype_table(id_big, id),
EXCLUDE USING btree (check_col_2 WITH =, id with =)
);
-- Typed table
CREATE TABLE employees OF employee_type (
PRIMARY KEY (name),
salary WITH OPTIONS DEFAULT 1000
);
-- Inheritance
CREATE TABLE person (
id INT NOT NULL PRIMARY KEY,
name text,
age int4,
location point
);
CREATE TABLE emp (
salary int4,
manager name
) INHERITS (person);
CREATE TABLE student (
gpa float8
) INHERITS (person);
CREATE TABLE stud_emp (
percent int4
) INHERITS (emp, student);
-- Storage parameters
CREATE TABLE storage (
id INT
) WITH (
fillfactor = 10,
autovacuum_enabled = FALSE
);
-- LIKE
CREATE TABLE like_datatype_table (
LIKE datatype_table
EXCLUDING ALL
);
CREATE TABLE like_fkey_table (
LIKE fkey_table
INCLUDING DEFAULTS
INCLUDING INDEXES
INCLUDING STORAGE
);
-- Volatile table types
CREATE UNLOGGED TABLE unlogged_table (
id INT PRIMARY KEY
);
CREATE TEMP TABLE temp_table (
id INT PRIMARY KEY
);
CREATE TEMP TABLE temp_table_commit_delete (
id INT PRIMARY KEY
)
ON COMMIT DELETE ROWS;
CREATE TEMP TABLE temp_table_commit_drop (
id INT PRIMARY KEY
)
ON COMMIT DROP;