# Limitations Of Prepared Statements
+ You cannot nest prepared statements
  + The prepared statement must not contain **`PREPARE`**, **`EXECUTE`**, and **`DEALLOCATE`** 
+ You can only prepare a single statement instead of multiple statements
+ You cannot prepare a statement that contains a dynamic cursor declaration
  + This is because `TiDB` checks the cursor syntax/statement within the prepared statement when creating the cursor

------------------------------------------------------------
TiDB does not allow you to prepare every type of SQL statement.

You cannot nest prepared statements.

You cannot prepare multiple statements, by single prepare.

You cannot prepare a statement that contains a dynamic cursor declaration. This is because TiDB checks the cursor syntax when use prepare, which in turn means your prepared statement can only prepare static cursor.

You cannot prepare diagnostic statements as required by the SQL standard. Diagnostic statements include: 
```
SHOW ERRORS
SHOW WARNINGS
```

For a full list of SQL statements allowed in prepared statements, see: `https://dev.mysql.com/doc/mysql/en/sql-syntax-prepared-statements.html`.

