Good afternoon, in 9.5.7 I have the following 2 tables -
CREATE TABLE words_users ( uid SERIAL PRIMARY KEY, created timestamptz NOT NULL, visited timestamptz NOT NULL, ip inet NOT NULL, fcm text, apns text, sns text, motto text, vip_until timestamptz, grand_until timestamptz, banned_until timestamptz, banned_reason text CHECK (LENGTH(banned_reason) > 0), elo integer NOT NULL CHECK (elo >= 0), medals integer NOT NULL CHECK (medals >= 0), coins integer NOT NULL ); CREATE TABLE words_social ( sid text NOT NULL, social integer NOT NULL CHECK (0 < social AND social <= 64), given text NOT NULL CHECK (given ~ '\S'), family text, photo text CHECK (photo ~* '^https?://...'), lat float, lng float, stamp integer NOT NULL, uid integer NOT NULL REFERENCES words_users ON DELETE CASCADE, PRIMARY KEY(sid, social) ); And then I am trying to add another table, which should reference the (sid, social) pair - CREATE TABLE words_payments ( sid text NOT NULL REFERENCES words_social ON DELETE CASCADE, social integer NOT NULL CHECK (0 < social AND social <= 64) REFERENCES words_social ON DELETE CASCADE, trans text NOT NULL, paid timestamptz NOT NULL, price integer NOT NULL ); Unfortunately, I get the error: ERROR: 42830: number of referencing and referenced columns for foreign key disagree LOCATION: ATAddForeignKeyConstraint, tablecmds.c:6345 How to refer to the (sid, social) FKs properly please? The background is that social is one of the predefined (by me) constants: public static final int UNKNOWN = 0; public static final int GOOGLE = 1; public static final int APPLE = 2; public static final int ODNOKLASSNIKI = 4; public static final int MAILRU = 8; public static final int VKONTAKTE = 16; public static final int FACEBOOK = 32; public static final int AMAZON = 64; And the sid is a "user id" used in the social network (for example Facebook user id). Thank you Alex