Six MySQL steps work with your own MySQL or MariaDB database, one step for each thing you do:

  • MySQL · Run a query — Runs SQL you write, with values as parameters.
  • MySQL · Insert rows — Adds a row to a table, a value for each column you fill in.
  • MySQL · Update rows — Changes the columns you fill in, in the rows that match.
  • MySQL · Delete rows — Deletes the rows that match.
  • MySQL · Find rows — The rows of a table that match, in the order you choose.
  • MySQL · Run a stored procedure — Calls a procedure in the database with the values you give.

In the step picker, the steps that change data say so: Changes data on Insert rows and Update rows, Deletes data on Delete rows, and Can change data on Run a query and Run a stored procedure, whose effect depends on the SQL. The same tag and a sentence sit at the top of each step's settings.

Who can do this

Workspace Admins and Editors. MySQL is a paid-plan service: you can build and test these steps on any plan; publishing needs a paid plan.

Before you start

A MySQL connection in this workspace — see Connect a MySQL or MariaDB database. Its user needs the rights each step uses: SELECT to find, INSERT, UPDATE or DELETE to change rows, EXECUTE to run a procedure.

Steps

  1. Select +, then in Apps select MySQL, or search MySQL. Choose the step.
  2. Choose the Connection.
  3. Fill in the step:
    • Run a query — in Query, write the SQL. It starts with an example:

      select id, status, total
      from orders
      where phone = @phone
      

      Name each value @like_this and give it under Parameters. Under Parameters, add each @name and its value, usually {{ }} from an earlier step.

    • Insert rows — choose the Table. Under Columns, the table's columns load from the database; give a value for each one you want set. Only the columns you fill in are set; the rest take the table's defaults.

    • Update rows — choose the Table. Under Where, add a column and the value it must hold for each condition — every row given must match. Under New values, fill in the columns to change.

    • Delete rows — choose the Table and fill in Where as for Update rows. Deleted rows cannot be brought back.

    • Find rows — choose the Table, and optionally Where, Order by a column, and Order — Lowest first or Highest first.

    • Run a stored procedure — choose the Procedure. Under Parameters, its parameters load from the procedure; give each a value. One left empty is sent as NULL.

  4. Optional, on Run a query, Find rows and Run a stored procedure: Most rows — 1,000 unless you change it, up to 10,000.
  5. Select Run this step, then check Output.

Output

Field What it is
count How many rows came back — or, for Insert, Update and Delete, how many changed.
rows The rows, each by its column names. Insert rows gives the row it wrote, with the id the database gave it.
affected How many rows an insert, update or delete changed. 0 for a select.
insertedId Insert rows only: the id the database gave the new row, when the table has an auto-increment column.
outputs Run a stored procedure only, when it has OUT or INOUT parameters: each by its name.
note Only when cut: Only the first 1,000 rows are kept. (or the number you set).

Good to know

  • Values are always parameters. {{ }} is never allowed inside a query; on the other steps, every value you give is sent as a parameter, never glued into the SQL.
  • Tables, columns and procedures come from the database's own lists. A value from an earlier step cannot name a table — Choose the table from the list.
  • A value takes its column's type. A number column gets a number, a date column a date — 2026-10-02T11:15:00Z from an earlier step is stored as that time in UTC — and an empty value in anything but a text column is stored as NULL.
  • Where matches equal values. Each row under Where is column = value; an empty value matches NULL. For anything else — greater than, LIKE, OR — use Run a query.
  • Update rows and Delete rows always need Where. To change or delete every row, use Run a query.
  • 15 seconds to connect, 30 seconds to run. Each step runs once per item.
  • Paid: a live run on a plan without paid services is skipped; tests work on any plan.

If something goes wrong

What the run says Why What to do
MySQL refused: … MySQL refused the statement — a column that does not allow NULL, a duplicate key, a right the user lacks. Read the reason; grant the user the right, or change the values.
Put values from earlier steps in Parameters — @name in the query — never in the query itself. The query contains {{ }}. Move each value into Parameters.
Choose the table from the list. A value from an earlier step cannot name it. Table holds a {{ }}. Choose the table from the list.
The database has no table named … Refresh the list and choose again. The table was renamed or dropped. Refresh and choose again.
… has no column named “…”. Refresh the columns and choose again. A column under Where, Columns or Order by is not in the table. Refresh the columns and fix the row.
Say which rows to change under Where. To change every row, use Run a query. Where is empty on Update rows. Add a condition. The same for Delete rows.
Give a value for at least one column. No column has a value on Insert rows. Fill in a column.
MySQL refused the user or password. … The connection's sign-in stopped working. Reconnect on Connections.
… is not on the public internet, so workflows cannot reach it. The server is private. Use a server on the public internet.