Hi SQLers,

I have a fk from address to network and try to update the foreign key column to point at the network, "it belongs to":

CREATE TABLE network (
  id      cidr     PRIMARY KEY     , -- 'PK, ,IPv4/6 Network address'
)

CREATE TABLE address (
  id             inet     PRIMARY KEY     , -- 'PK of IPv4/6 host address'
  network cidr     NOT NULL                 -- 'FK to Network table'
REFERENCES network ON DELETE CASCADE ON UPDATE CASCADE
)

I tried (using the WHERE clause to eliminate the addresses were no corresponding net exists):
UPDATE address
        SET network = (SELECT N.id WHERE A.id << N.id)
        FROM address A, network N
        WHERE A.id << N.id;

But this ended up with all network columns pointing at the same net (-:).
Any help would be appreciated.

Axel
Axel Rau, Frankfurt, Germany                           +49-69-951418-0


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to