Gostaria de usar a seguinte sintaxe em meu código PL/pgSQL:
INSERT INTO table (table.column1, table.column2) VALUES (1, 2);
Mas de alguma forma não funciona. Alguém sabe se tal notação é proibida ou fiz algo errado?
Gostaria de usar a seguinte sintaxe em meu código PL/pgSQL:
INSERT INTO table (table.column1, table.column2) VALUES (1, 2);
Mas de alguma forma não funciona. Alguém sabe se tal notação é proibida ou fiz algo errado?
Em primeiro lugar, se você realmente deseja usar o nome
table
para sua tabela, precisará colocá-lo entre aspas:mas supondo que o nome da sua tabela seja algo diferente (o que eu recomendo fortemente), o erro retornado indica que o analisador está interpretando
my_table
como um nome de coluna:Essa interpretação é sensata, pois
column1
pode ser um tipo composto , por exemplo:Você provavelmente deseja apenas o seguinte, conforme já sugerido pelo DrColossos:
table.column1
pode ser confundido com uma pesquisa de esquema . Ele acha que precisa procurar um esquema chamado tabela.Certifique-se de verificar os documentos sobre como criar um esquema . Isso diz que
Isso também não faria sentido sintático, pois você já sabe a qual tabela está se referindo. SE você precisar consultar o esquema, você deve escrevê-lo.