Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 906615
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T16:24:59+00:00 2026-05-15T16:24:59+00:00

I have a table which stores ‘links’ between 2 people. In order prevent further

  • 0

I have a table which stores ‘links’ between 2 people. In order prevent further complications down the road on an application I am building, I want to create an editable view, that shows the link records and an inverse copy of the link records.

Meaning if Joe is linked to Sally, then the view should show Joe linked to Sally and Sally linked to Joe.

So I have created a UNION as follows:

CREATE VIEW links AS

SELECT  id,
  link_origin_id AS person_id,
  link_origin_id,
  link_rcvd_id,
  link_type,
  link_summary,
  created_at,
  updated_at
 FROM links_data 

 UNION

 SELECT  id,
   link_rcvd_id,
   link_origin_id,
   link_rcvd_id,
   link_type,
   link_summary,
   created_at,
   updated_at
 FROM links_data

The view works fine. Note that the view creates an additional column ‘person_id’ which is not in the underlying table.

I am running into trouble creating postgres rules that will edit the underlying table.

Specifically, I can successfully edit a table view when it is not a UNION view. But below is what occurs when I try to write a rule with a UNION view:

CREATE RULE inverse_links AS ON INSERT TO links DO INSTEAD
INSERT INTO links_data
  (id, link_origin_id, link_type, link_summary, link_rcvd_id, created_at, 
   updated_at)

VALUES (nextval('people_id_seq'), new.link_origin_id, new.link_type, 
        new.link_summary, new.link_rcvd_id, new.created_at, new.updated_at)

RETURNING *;

The above rule should redirect the edits to the underlying table ‘links_data’.

But I am getting the following error:

ERROR:  RETURNING list's entry 3 has different type from column "link_origin_id"

********** Error **********

ERROR: RETURNING list's entry 3 has different type from column "link_origin_id"
SQL state: 42P17

The 2 things I feel might be the problem is that 1) the view has an additional column which is causing the column types to not match up or 2) there might be something with the fact that the table is a UNION on itself and editing this might be a problem.

Any idea of where I can go with this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T16:25:00+00:00Added an answer on May 15, 2026 at 4:25 pm

    Disclaimer: almost no experience with updatable views.

    Your RETURNING clause is the problem – the links_data table most probably has 7 colums (as shown by your view definition and the ON INSERT rule) and you’re returning their contents for the just inserted row with RETURNING * but your view has 8 columns. Check and sync those two lists.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Say I have a table which stores customers order IDs. Such as | Customer
I have table in my SQL Server database called OrderDetail which stores the order
I have a table which stores test results like this: user | score |
Imagine I have a table which stores a series of sparse vectors. A sparse
While working with ActiveRecord I have a table which stores a serialized array of
I have a database table A which stores records, A has a primary key
I have a table in my database which stores a tree structure. Here are
I have a database table called Posts which stores all the information regarding an
I have a table with a binary column which stores files of a number
I have a MySql table called reviews which stores a lot of product reviews,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.