I have some remark about "Now it is impossible to create orders with product_no entries that do not appear in the products table."
http://www.postgresql.org/docs/9.0/static/ddl-constraints.html#DDL-CONSTRAINTS-FK Let' see: CREATE TABLE products ( product_no integer PRIMARY KEY, name text, price numeric ); CREATE TABLE orders ( order_id integer PRIMARY KEY, product_no integer REFERENCES products (product_no), quantity integer ); INSERT INTO products VALUES (1, 'Bosch vacuum cleaner', 10); INSERT INTO orders VALUES (1, 1, 1); INSERT INTO orders VALUES (2, NULL, 5); There is still possibility to add product_no (exactly NULL) value, which does not appear (cannot because of primary key nature) in products table. To get "full solution" you need create orders table as CREATE TABLE orders ( order_id integer PRIMARY KEY, product_no integer REFERENCES products (product_no) NOT NULL, quantity integer ); Regards, Grzegorz Szpetkowski -- Sent via pgsql-docs mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-docs
