inherit.out
来自「PostgreSQL7.4.6 for Linux」· OUT 代码 · 共 616 行
OUT
616 行
---- Test inheritance features--CREATE TABLE a (aa TEXT);CREATE TABLE b (bb TEXT) INHERITS (a);CREATE TABLE c (cc TEXT) INHERITS (a);CREATE TABLE d (dd TEXT) INHERITS (b,c,a);NOTICE: merging multiple inherited definitions of column "aa"NOTICE: merging multiple inherited definitions of column "aa"INSERT INTO a(aa) VALUES('aaa');INSERT INTO a(aa) VALUES('aaaa');INSERT INTO a(aa) VALUES('aaaaa');INSERT INTO a(aa) VALUES('aaaaaa');INSERT INTO a(aa) VALUES('aaaaaaa');INSERT INTO a(aa) VALUES('aaaaaaaa');INSERT INTO b(aa) VALUES('bbb');INSERT INTO b(aa) VALUES('bbbb');INSERT INTO b(aa) VALUES('bbbbb');INSERT INTO b(aa) VALUES('bbbbbb');INSERT INTO b(aa) VALUES('bbbbbbb');INSERT INTO b(aa) VALUES('bbbbbbbb');INSERT INTO c(aa) VALUES('ccc');INSERT INTO c(aa) VALUES('cccc');INSERT INTO c(aa) VALUES('ccccc');INSERT INTO c(aa) VALUES('cccccc');INSERT INTO c(aa) VALUES('ccccccc');INSERT INTO c(aa) VALUES('cccccccc');INSERT INTO d(aa) VALUES('ddd');INSERT INTO d(aa) VALUES('dddd');INSERT INTO d(aa) VALUES('ddddd');INSERT INTO d(aa) VALUES('dddddd');INSERT INTO d(aa) VALUES('ddddddd');INSERT INTO d(aa) VALUES('dddddddd');SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+---------- a | aaa a | aaaa a | aaaaa a | aaaaaa a | aaaaaaa a | aaaaaaaa b | bbb b | bbbb b | bbbbb b | bbbbbb b | bbbbbbb b | bbbbbbbb c | ccc c | cccc c | ccccc c | cccccc c | ccccccc c | cccccccc d | ddd d | dddd d | ddddd d | dddddd d | ddddddd d | dddddddd(24 rows)SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+----------+---- b | bbb | b | bbbb | b | bbbbb | b | bbbbbb | b | bbbbbbb | b | bbbbbbbb | d | ddd | d | dddd | d | ddddd | d | dddddd | d | ddddddd | d | dddddddd | (12 rows)SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----------+---- c | ccc | c | cccc | c | ccccc | c | cccccc | c | ccccccc | c | cccccccc | d | ddd | d | dddd | d | ddddd | d | dddddd | d | ddddddd | d | dddddddd | (12 rows)SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+----------+----+----+---- d | ddd | | | d | dddd | | | d | ddddd | | | d | dddddd | | | d | ddddddd | | | d | dddddddd | | | (6 rows)SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+---------- a | aaa a | aaaa a | aaaaa a | aaaaaa a | aaaaaaa a | aaaaaaaa(6 rows)SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+----------+---- b | bbb | b | bbbb | b | bbbbb | b | bbbbbb | b | bbbbbbb | b | bbbbbbbb | (6 rows)SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----------+---- c | ccc | c | cccc | c | ccccc | c | cccccc | c | ccccccc | c | cccccccc | (6 rows)SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+----------+----+----+---- d | ddd | | | d | dddd | | | d | ddddd | | | d | dddddd | | | d | ddddddd | | | d | dddddddd | | | (6 rows)UPDATE a SET aa='zzzz' WHERE aa='aaaa';UPDATE ONLY a SET aa='zzzzz' WHERE aa='aaaaa';UPDATE b SET aa='zzz' WHERE aa='aaa';UPDATE ONLY b SET aa='zzz' WHERE aa='aaa';UPDATE a SET aa='zzzzzz' WHERE aa LIKE 'aaa%';SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+---------- a | zzzz a | zzzzz a | zzzzzz a | zzzzzz a | zzzzzz a | zzzzzz b | bbb b | bbbb b | bbbbb b | bbbbbb b | bbbbbbb b | bbbbbbbb c | ccc c | cccc c | ccccc c | cccccc c | ccccccc c | cccccccc d | ddd d | dddd d | ddddd d | dddddd d | ddddddd d | dddddddd(24 rows)SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+----------+---- b | bbb | b | bbbb | b | bbbbb | b | bbbbbb | b | bbbbbbb | b | bbbbbbbb | d | ddd | d | dddd | d | ddddd | d | dddddd | d | ddddddd | d | dddddddd | (12 rows)SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----------+---- c | ccc | c | cccc | c | ccccc | c | cccccc | c | ccccccc | c | cccccccc | d | ddd | d | dddd | d | ddddd | d | dddddd | d | ddddddd | d | dddddddd | (12 rows)SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+----------+----+----+---- d | ddd | | | d | dddd | | | d | ddddd | | | d | dddddd | | | d | ddddddd | | | d | dddddddd | | | (6 rows)SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+-------- a | zzzz a | zzzzz a | zzzzzz a | zzzzzz a | zzzzzz a | zzzzzz(6 rows)SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+----------+---- b | bbb | b | bbbb | b | bbbbb | b | bbbbbb | b | bbbbbbb | b | bbbbbbbb | (6 rows)SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----------+---- c | ccc | c | cccc | c | ccccc | c | cccccc | c | ccccccc | c | cccccccc | (6 rows)SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+----------+----+----+---- d | ddd | | | d | dddd | | | d | ddddd | | | d | dddddd | | | d | ddddddd | | | d | dddddddd | | | (6 rows)UPDATE b SET aa='new';SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+---------- a | zzzz a | zzzzz a | zzzzzz a | zzzzzz a | zzzzzz a | zzzzzz b | new b | new b | new b | new b | new b | new c | ccc c | cccc c | ccccc c | cccccc c | ccccccc c | cccccccc d | new d | new d | new d | new d | new d | new(24 rows)SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+-----+---- b | new | b | new | b | new | b | new | b | new | b | new | d | new | d | new | d | new | d | new | d | new | d | new | (12 rows)SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----------+---- c | ccc | c | cccc | c | ccccc | c | cccccc | c | ccccccc | c | cccccccc | d | new | d | new | d | new | d | new | d | new | d | new | (12 rows)SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+-----+----+----+---- d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | (6 rows)SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+-------- a | zzzz a | zzzzz a | zzzzzz a | zzzzzz a | zzzzzz a | zzzzzz(6 rows)SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+-----+---- b | new | b | new | b | new | b | new | b | new | b | new | (6 rows)SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----------+---- c | ccc | c | cccc | c | ccccc | c | cccccc | c | ccccccc | c | cccccccc | (6 rows)SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+-----+----+----+---- d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | (6 rows)UPDATE a SET aa='new';DELETE FROM ONLY c WHERE aa='new';SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+----- a | new a | new a | new a | new a | new a | new b | new b | new b | new b | new b | new b | new d | new d | new d | new d | new d | new d | new(18 rows)SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+-----+---- b | new | b | new | b | new | b | new | b | new | b | new | d | new | d | new | d | new | d | new | d | new | d | new | (12 rows)SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+-----+---- d | new | d | new | d | new | d | new | d | new | d | new | (6 rows)SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+-----+----+----+---- d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | (6 rows)SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+----- a | new a | new a | new a | new a | new a | new(6 rows)SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+-----+---- b | new | b | new | b | new | b | new | b | new | b | new | (6 rows)SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----+----(0 rows)SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+-----+----+----+---- d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | d | new | | | (6 rows)DELETE FROM a;SELECT relname, a.* FROM a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+----(0 rows)SELECT relname, b.* FROM b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+----+----(0 rows)SELECT relname, c.* FROM c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----+----(0 rows)SELECT relname, d.* FROM d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+----+----+----+----(0 rows)SELECT relname, a.* FROM ONLY a, pg_class where a.tableoid = pg_class.oid; relname | aa ---------+----(0 rows)SELECT relname, b.* FROM ONLY b, pg_class where b.tableoid = pg_class.oid; relname | aa | bb ---------+----+----(0 rows)SELECT relname, c.* FROM ONLY c, pg_class where c.tableoid = pg_class.oid; relname | aa | cc ---------+----+----(0 rows)SELECT relname, d.* FROM ONLY d, pg_class where d.tableoid = pg_class.oid; relname | aa | bb | cc | dd ---------+----+----+----+----(0 rows)-- Confirm PRIMARY KEY adds NOT NULL constraint to child tableCREATE TEMP TABLE z (b TEXT, PRIMARY KEY(aa, b)) inherits (a);NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "z_pkey" for table "z"INSERT INTO z VALUES (NULL, 'text'); -- should failERROR: null value in column "aa" violates not-null constraint-- Check UPDATE with inherited target and an inherited source tablecreate temp table foo(f1 int, f2 int);create temp table foo2(f3 int) inherits (foo);create temp table bar(f1 int, f2 int);create temp table bar2(f3 int) inherits (bar);insert into foo values(1,1);insert into foo values(3,3);insert into foo2 values(2,2,2);insert into foo2 values(3,3,3);insert into bar values(1,1);insert into bar values(2,2);insert into bar values(3,3);insert into bar values(4,4);insert into bar2 values(1,1,1);insert into bar2 values(2,2,2);insert into bar2 values(3,3,3);insert into bar2 values(4,4,4);update bar set f2 = f2 + 100 where f1 in (select f1 from foo);SELECT relname, bar.* FROM bar, pg_class where bar.tableoid = pg_class.oid; relname | f1 | f2 ---------+----+----- bar | 4 | 4 bar | 1 | 101 bar | 2 | 102 bar | 3 | 103 bar2 | 4 | 4 bar2 | 1 | 101 bar2 | 2 | 102 bar2 | 3 | 103(8 rows)/* Test inheritance of structure (LIKE) */CREATE TABLE inhx (xx text DEFAULT 'text');/* * Test double inheritance * * Ensure that defaults are NOT included unless * INCLUDING DEFAULTS is specified */CREATE TABLE inhe (ee text, LIKE inhx) inherits (b);INSERT INTO inhe VALUES ('ee-col1', 'ee-col2', DEFAULT, 'ee-col4');SELECT * FROM inhe; /* Columns aa, bb, xx value NULL, ee */ aa | bb | ee | xx ---------+---------+----+--------- ee-col1 | ee-col2 | | ee-col4(1 row)SELECT * FROM inhx; /* Empty set since LIKE inherits structure only */ xx ----(0 rows)SELECT * FROM b; /* Has ee entry */ aa | bb ---------+--------- ee-col1 | ee-col2(1 row)SELECT * FROM a; /* Has ee entry */ aa --------- ee-col1(1 row)CREATE TABLE inhf (LIKE inhx, LIKE inhx); /* Throw error */ERROR: column "xx" duplicatedCREATE TABLE inhf (LIKE inhx INCLUDING DEFAULTS);INSERT INTO inhf DEFAULT VALUES;SELECT * FROM inhf; /* Single entry with value 'text' */ xx ------ text(1 row)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?