Alexander: On Sat, Mar 11, 2017 at 10:41 AM, Alexander Farber <alexander.farber@xxxxxxxxx> wrote: > uid integer NOT NULL REFERENCES words_users(uid) CHECK (uid <> > author) ON DELETE CASCADE, Maybe a stupid question, but have you tried "refereces.. on delete .. check"? I mean, the manual for create table says: >>> column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ] ...And a little down where column_constraint is: [ CONSTRAINT constraint_name ] { NOT NULL | NULL | CHECK ( expression ) [ NO INHERIT ] | DEFAULT default_expr | UNIQUE index_parameters | PRIMARY KEY index_parameters | REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] <<<< So ON DELETE is an optional part of a reference constraint, not a constraint per se, and it is being parsed as "references..." ( correct constraint) + "check..." (correct constraint) + "On delete.." (WTF is this ), on delete after references should be parsed as a single big constraint. > What am I doing wrong please? Not RTFM ? ( if I'm right, or not understanding it ) Francisco Olarte. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general