Ik heb een trigger op een table staan in een postgres DB, in de functie die aangeroepen word door die trigger staat een query die van de desbetreffende table de primary key column teruggeeft.
Deze query werkt als ik die gewoon uitvoer als sql:
Dit werkt prima, krijg ik mijn resultaat terug zonder problemen, echter, als ik deze query in de functie giet die getriggert word, dan werkt het niet...
Dan krijg ik deze error:
En ik vind maar niet waarom het op de ene plaats wel werkt en op de andere niet, iemand die me hiermee kan helpen?
Deze query werkt als ik die gewoon uitvoer als sql:
SQL:
1
2
3
4
5
6
| SELECT a.attname, format_type(a.atttypid, a.atttypmod) AS data_type FROM pg_index AS i JOIN pg_attribute AS a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) WHERE i.indrelid = 'collection'::regclass AND i.indisprimary |
Dit werkt prima, krijg ik mijn resultaat terug zonder problemen, echter, als ik deze query in de functie giet die getriggert word, dan werkt het niet...
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
| DECLARE v_data JSON; select to_json(ARRAY( SELECT to_json(t) FROM ( (SELECT a.attname, format_type(a.atttypid, a.atttypmod) AS data_type FROM pg_index AS i JOIN pg_attribute AS a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) WHERE i.indrelid = 'collection'::regclass AND i.indisprimary) ) t )) INTO v_data; |
Dan krijg ik deze error:
code:
1
| SQLSTATE: 42P01, SQLERRM: missing FROM-clause entry for table "a" |
En ik vind maar niet waarom het op de ene plaats wel werkt en op de andere niet, iemand die me hiermee kan helpen?
Just me