CHECK बाधा का उपयोग करके इसे निर्दिष्ट करने का कोई तरीका नहीं है, इसलिए मुझे लगता है कि सबसे अच्छा तरीका एक ट्रिगर है:
http://www.postgresql.org/docs/9.1/static /sql-createtrigger.html
http://www.postgresql.org/docs /9.1/static/plpgsql-trigger.html
आप कुछ इस तरह से समाप्त करेंगे (मैंने इसका परीक्षण या कुछ भी नहीं किया है):
CREATE TRIGGER at_least_one before INSERT, UPDATE, DELETE ON the_one_table FOR EACH ROW EXECUTE PROCEDURE check_at_least_one();
CREATE OR REPLACE FUNCTION check_at_least_one() RETURNS trigger AS $$
BEGIN
nmany := select count(*) from the_many_table where the_many_table.the_one_id=NEW.id;
IF nmany > 0 THEN
RETURN NEW;
END IF;
RETURN NULL;
END;