# **EXECUTE**

## **Grammar Description**

The purpose of the EXECUTE statement is: After using `PREPARE` to prepare a statement, you can use the `EXECUTE` statement to refer to the precompiled statement name and execute it. If a precompiled statement contains any parameter tags, you must provide a `USING` clause that lists user variables that contain the value to bind to the parameter. Parameter values can only be provided by user variables, and the `USING` clause must name as many variables as the number of parameter markers in the statement.

You can execute a given precompiled statement multiple times, pass different variables to it, or set the variable to a different value before each execution.

## **Grammar Structure**

```sql
EXECUTE stmt_name
    [USING @var_name [, @var_name] ...]
```

## **Parameter definition**

| Parameters | Description |
| ---- | ---- |
|stmt_name | Name of precompiled SQL statement |

## **Example**

```text
> CREATE TABLE numbers(pk INTEGER PRIMARY KEY, ui BIGINT UNSIGNED, si BIGINT);
> INSERT INTO numbers VALUES (0, 0, -9223372036854775808), (1, 18446744073709551615, 9223372036854775807);
> SET @si_min = -9223372036854775808;
> SET @si_max = 9223372036854775807;
> PREPARE s2 FROM 'SELECT * FROM numbers WHERE si=?';
Query OK, 0 rows affected (0.00 sec)

> EXECUTE s2 USING @si_min;
+------+-----------------------------------------------------------------------------------------------------------------------
| pk | ui | si |
+------+-----------------------------------------------------------------------------------------------------------------------
| 0 | 0 | -9223372036854775808 |
+------+-----------------------------------------------------------------------------------------------------------------------
1 row in set (0.01 sec)

> EXECUTE s2 USING @si_max;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| pk | ui | si |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 1 | 18446744073709551615 | 9223372036854775807 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 row in set (0.01 sec)

> DEALLOCATE PREPARE s2;
Query OK, 0 rows affected (0.00 sec)
```
