scratch=# CREATE TABLE bub (bub_id UUID PRIMARY KEY DEFAULT uuid_generate_v4());
CREATE TABLE
scratch=# CREATE TABLE foo (foo_id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), bub_id UUID NOT NULL REFERENCES bub (bub_id) ON DELETE CASCADE);
CREATE TABLE
scratch=# CREATE TABLE subfoo (message TEXT) INHERITS (foo);
CREATE TABLE
scratch=# insert into bub DEFAULT VALUES;
INSERT 0 1
scratch=# insert into bub DEFAULT VALUES;
INSERT 0 1
scratch=# insert into bub DEFAULT VALUES;
INSERT 0 1
scratch=# select * from bub;
                bub_id                
--------------------------------------
 7996552e-ee9a-4e39-b0c3-04ab55151af1
 275b718b-f4b1-4b68-9273-a3db7476e321
 27bef356-79f6-4583-9900-2fa913b07f8f
(3 rows)

scratch=# insert into subfoo (bub_id) VALUES ('7996552e-ee9a-4e39-b0c3-04ab55151af1');
INSERT 0 1
scratch=# select * from bub;
                bub_id                
--------------------------------------
 7996552e-ee9a-4e39-b0c3-04ab55151af1
 275b718b-f4b1-4b68-9273-a3db7476e321
 27bef356-79f6-4583-9900-2fa913b07f8f
(3 rows)

scratch=# select * from foo;
                foo_id                |                bub_id                
--------------------------------------+--------------------------------------
 6292b1e5-7cb0-40d5-b618-9af1a3ca5d67 | 7996552e-ee9a-4e39-b0c3-04ab55151af1
(1 row)

scratch=# select * from subfoo;
                foo_id                |                bub_id                | message 
--------------------------------------+--------------------------------------+---------
 6292b1e5-7cb0-40d5-b618-9af1a3ca5d67 | 7996552e-ee9a-4e39-b0c3-04ab55151af1 | 
(1 row)

scratch=# delete from bub where bub_id = '7996552e-ee9a-4e39-b0c3-04ab55151af1';
DELETE 1
scratch=# select * from bub;
                bub_id                
--------------------------------------
 275b718b-f4b1-4b68-9273-a3db7476e321
 27bef356-79f6-4583-9900-2fa913b07f8f
(2 rows)

scratch=# select * from subfoo;
                foo_id                |                bub_id                | message 
--------------------------------------+--------------------------------------+---------
 6292b1e5-7cb0-40d5-b618-9af1a3ca5d67 | 7996552e-ee9a-4e39-b0c3-04ab55151af1 | 
(1 row)

scratch=# select * from foo
scratch-# ;
                foo_id                |                bub_id                
--------------------------------------+--------------------------------------
 6292b1e5-7cb0-40d5-b618-9af1a3ca5d67 | 7996552e-ee9a-4e39-b0c3-04ab55151af1
(1 row)

scratch=# drop table foo;
ERROR:  cannot drop table foo because other objects depend on it
DETAIL:  table subfoo depends on table foo
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
scratch=# drop table foo CASCADE;
NOTICE:  drop cascades to table subfoo
DROP TABLE
scratch=# drop table bub;
DROP TABLE
scratch=# CREATE TABLE bub (bub_id UUID PRIMARY KEY DEFAULT uuid_generate_v4());
CREATE TABLE
scratch=# CREATE TABLE foo (foo_id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), bub_id UUID NOT NULL REFERENCES bub (bub_id) ON DELETE CASCADE);
CREATE TABLE
scratch=# CREATE TABLE subfoo (message TEXT, FOREIGN KEY bub (bub_id) ON DELETE CASCADE) INHERITS (foo);
ERROR:  syntax error at or near "bub"
LINE 1: CREATE TABLE subfoo (message TEXT, FOREIGN KEY bub (bub_id) ...
                                                       ^
scratch=# CREATE TABLE subfoo (message TEXT, FOREIGN KEY bub_id REFERENCES bub (bub_id) ON DELETE CASCADE) INHERITS (foo);
ERROR:  syntax error at or near "bub_id"
LINE 1: CREATE TABLE subfoo (message TEXT, FOREIGN KEY bub_id REFERE...
                                                       ^
scratch=# CREATE TABLE subfoo (message TEXT, FOREIGN KEY (bub_id) REFERENCES bub (bub_id) ON DELETE CASCADE) INHERITS (foo);
CREATE TABLE
scratch=# insert into bub DEFAULT VALUES;
INSERT 0 1
scratch=# insert into bub DEFAULT VALUES;
INSERT 0 1
scratch=# selct * from bub;
ERROR:  syntax error at or near "selct"
LINE 1: selct * from bub;
        ^
scratch=# select * from bub;
                bub_id                
--------------------------------------
 8653ae8c-b8cf-477e-9700-56cb8acba556
 4302cb8e-4c7a-4d8f-a83f-ffeaaa40f3bd
(2 rows)

scratch=# insert into subfoo (bub_id) VALUES ('8653ae8c-b8cf-477e-9700-56cb8acba556');
INSERT 0 1
scratch=# delete from bub where bub_id = '8653ae8c-b8cf-477e-9700-56cb8acba556';
DELETE 1
scratch=# select * from subfoo;
 foo_id | bub_id | message 
--------+--------+---------
(0 rows)
                            