WITH ip_addresses_new AS ( INSERT INTO audit_log.ip_addresses (address_client, x_forwarded_for) SELECT CAST('192.168.43.199' as cidr), CAST('0.0.0.0' as cidr) WHERE NOT EXISTS ( SELECT ip_address_id FROM audit_log.ip_addresses WHERE COALESCE(address_client::text, '') = COALESCE(CAST('192.168.43.199' as cidr)::text, '') AND COALESCE(x_forwarded_for::text, '') = COALESCE(CAST('0.0.0.0' as cidr)::text, '') ) RETURNING ip_address_id ) SELECT *,'INSERT' FROM ip_addresses_new UNION SELECT ip_address_id,'SELECT' FROM audit_log.ip_addresses i WHERE COALESCE(i.address_client::text, '') = COALESCE(CAST('192.168.43.199' as cidr)::text, '') AND COALESCE(i.x_forwarded_for::text, '') = COALESCE(CAST('0.0.0.0' as cidr)::text, '')