Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qnCy4-00A5RD-8R for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Oct 2023 07:03:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qnCy1-00HBQe-3X for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Oct 2023 07:03:45 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qnCy0-00HBQC-Jp for pgsql-hackers@lists.postgresql.org; Mon, 02 Oct 2023 07:03:44 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qnCxt-007jjn-M5 for pgsql-hackers@postgresql.org; Mon, 02 Oct 2023 07:03:43 +0000 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3232be274a0so1565413f8f.1 for ; Mon, 02 Oct 2023 00:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1696230215; x=1696835015; darn=postgresql.org; h=mime-version:user-agent:content-transfer-encoding:date:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=ysUd58I175Qafm1tppvTRll546lScMhbdAvzIsa4F0s=; b=n0hej7e4LAQiE/0LVPJ9FhPBpphyjUgz3TU2icA6YnbzuQXfc6xpE9IN7YZp2kG7vG I0AT5n3ZOnH/6J2mxWVGXJ8hKXGCpvjHQWzN5xFd6v4Lr8Ke6s1Nnm2BBbcVFSV1MaN3 JxeiStBFWAc2zYiOQN1iz6m9D8P62kuMOGeRhbJHGzQ0uJgQ/U3iyIdiLGDo9hVQr/dz 6kZZDfDNgfkFOAiObe9gfzRrjcvY3c8VOLDUvtQ0X7G1DMveKKxbtGx2EDSfl/pw/9me xesfPRhy7mOz+nSVtDb1DDrJF4pD0H1ZHZizI5SrQgC20aRvae0O/8TokMkdhBY474B7 g+yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696230215; x=1696835015; h=mime-version:user-agent:content-transfer-encoding:date:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ysUd58I175Qafm1tppvTRll546lScMhbdAvzIsa4F0s=; b=YCK71Xl+kdh9JfNuLlB5HyD4DYzMwt0iOw8lsv9S+PG1Z4LeTDlYZZakhsMeCG+2dz pHSKQZQudC3Ai5SN94X0kUnKyRWtRezHOcGdKFlGaZJv69VjUqy/SV3GDLKkMG20eV0Q 8kOon4fYXhxMe2lAEHlXD+EPjwRaCyh9kV4iuXZT9qFXP9Fv2cAvml5u3XHunzkFpuxB AySVrDrSVHzpw/577AnSEdW+aej4uC2BHL//5Lb1BbaAnt/JHqGM+dX1RzvejwWGuly6 JFqSIU9xVfaEFFAx+ojiFbysjUKa/q05jh/PdKx5CbqwHafIDJN4ZoFa6Ko+caaJqJRi faSQ== X-Gm-Message-State: AOJu0YxE18VBjKqkiqwsDedqrgZ3CbsbbSkmcuafiWROLj1GJ1i2Ly5M LHYeaiUYpxxnHPkVbDaJTNJMcZyoZ0nxexeelRM= X-Google-Smtp-Source: AGHT+IGZ2fY5aZxJMexozAZfH6DzX4fO2WTZalVkOf8rAvNqWCJWrK9lw2l/UQQsQuRd+MnWHUyO7w== X-Received: by 2002:adf:e64a:0:b0:323:30d0:5c4d with SMTP id b10-20020adfe64a000000b0032330d05c4dmr8777660wrn.19.1696230215444; Mon, 02 Oct 2023 00:03:35 -0700 (PDT) Received: from localhost.localdomain ([2001:871:5e:6cf4:1982:ecd7:8449:ce90]) by smtp.gmail.com with ESMTPSA id e13-20020a5d530d000000b00317b0155502sm8424004wrv.8.2023.10.02.00.03.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 00:03:35 -0700 (PDT) Message-ID: Subject: Trigger violates foreign key constraint From: Laurenz Albe To: pgsql-hackers@postgresql.org Date: Mon, 02 Oct 2023 09:03:33 +0200 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk CREATE TABLE parent (id integer PRIMARY KEY); CREATE TABLE child (id integer REFERENCES parent ON DELETE CASCADE); CREATE FUNCTION silly() RETURNS trigger LANGUAGE plpgsql AS 'BEGIN RETURN N= ULL; END;'; CREATE TRIGGER silly BEFORE DELETE ON child FOR EACH ROW EXECUTE FUNCTION s= illy(); INSERT INTO parent VALUES (1); INSERT INTO child VALUES (1); DELETE FROM parent WHERE id =3D 1; TABLE child; id=20 =E2=95=90=E2=95=90=E2=95=90=E2=95=90 1 (1 row) The trigger function cancels the cascaded delete on "child", and we are lef= t with a row in "child" that references no row in "parent". Yours, Laurenz Albe