Aufschiebbare Prüfbedingung in PostgreSQL
Ich habe die Funktion, die obligatorische Teilnahme wie folgt überprüft:
CREATE FUNCTION member_in_has_address()
RETURNS BOOLEAN AS $
BEGIN
RETURN EXISTS (SELECT *
FROM address a, member_details b
WHERE b.member_id = a.member_id);
END;
$ LANGUAGE plpgsql;
Wird dann von der CHECK-Einschränkung aufgerufen
ALTER TABLE member_details
ADD CONSTRAINT member_in_has_address_check
CHECK (member_in_has_address());
Um in Standard SQL eine aufschiebbare Einschränkung zu erstellen, wäre dies:
ALTER TABLE member_details
ADD CONSTRAINT member_in_has_address_check
INITIALLY DEFERRED
CHECK (member_in_has_address());
Wie kann ich dasselbe in PostgreSQL tun?