Postgres#
PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.
Credentials
You can find authentication information for this node here.
Basic Operations#
- Execute an SQL query
- Insert rows in database
- Update rows in database
Example Usage#
This workflow allows you to run an SQL query on a Postgres instance. You can also find the workflow on n8n.io. This example usage workflow would use the following nodes.
The final workflow should look like the following image.
1. Start node#
The start node exists by default when you create a new workflow.
2. Postgres node (Execute Query)#
- Enter credentials for the Postgres node. You can find out how to do that here.
- Select Execute Query from the Operation dropdown list.
- Enter the following SQL query in the Query field:
CREATE TABLE test (id INT, name VARCHAR(255), PRIMARY KEY (id));
. - Click on the Node tab and toggle Always Output Data to true.
- Click on Execute Node to run the node.
3. Set node#
- Click on the Add Value button and select Number from the dropdown list.
- Enter
id
in the Name field. - Click on the Add Value button and select String from the dropdown list.
- Enter
name
in the Name field. - Enter the value for the name in the Value field.
- Click on Execute Node to run the node.
4. Postgres1 node (Insert)#
- Select the credentials that you entered in the previous Postgres node.
- Enter
test
in the Table field. - Enter
id, name
in the Columns field. - Click on Execute Node to run the node.
Specify the data type of a column#
To specify the data type of a column, append the column name with :type
, where type
is the data type of that column. For example, if you want to specify the type int
for the column id and type text
for the column name, you can use the following snippet in the Columns field: id:init,name:text
.
Use query parameters#
When creating a query to run on a Postgres database, you can use the Query Parameters field in the Additional Fields section to load data into the query. n8n sanitizes data in query parameters, which prevents SQL injection.
For example, you want to find a person by their email address. Given the following input data:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
You can write a query like:
1 |
|
Then in Query Parameters, map the value to email
by dragging and dropping the email column head from the INPUT view into Query Parameters: