# [FAQ] Prepared statement contains too many placeholders

## Key Words

TiDB, prepared statement, too many placeholders

## Description

TiDB 日志出现 \[err="\[executor:1390]Prepared statement contains too many placeholders"] 报错：

```log
2022-10-10 16:21:40 (GMT+11)TiDB 10.151.216.53:4000[conn.go:1149] ["command dispatched failed"] [conn=694506519927745611] [connInfo="id:694506519927745611, addr:127.0.0.1:39560 status:1, collation:utf8mb4_general_ci, user:test"] [command=Prepare] [status="inTxn:1, autocommit:0"] [sql="INSERT INTO `test` (`col1`,`col2`,`col3`,`col4`,`col5`,`col6`,`col7`,`col8`,`col9`,`col10`,`col11`,`col12`,`col13`,`col14`,`col15`,`col16`,`col17`,`col18`,`col19`,`col20`,`col21`,`col22`,`col23`,`col24`,`col25`,`col26`,`col27`,`col28`,`col29`,`col30`,`col31`,`col32`,`col33`,`col34`,`col35`,`col36`,`col37`,`col38`,`col39`,`col40`,`col41`,`col42`,`col43`,`col44`,`col45`,`col46`,`col47`,`col48`,`col49`,`col50`,`col51`,`col52`,`col53`,`col54`,`col55`,`col56`,`col57`,`col58`,`col59`,`col60`,`col61`,`col62`,`col63`,`col64`,`col65`,`col66`,`col67`,`col68`,`col69`,`col70`,`col71`,`col72`,`col73`,`col74`,`col75`,`col76`,`col77`,`col78`,`col79`,`col80`,`col81`,`col82`,`col83`,`col84`,`col85`,`col86`,`col87`,`col88`,`col89`,`col90`,`col91`,`col92`,`col93`,`col94`,`col95`,`col96`,`col97`,`col98`,`col99`,`col100`,`col101`,`col102`,`col103`,`col104`,`col105`,`col106`,`col107`,`col108`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?),(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,(len: 210053)"] [txn_mode=OPTIMISTIC] [timestamp=436569189979258893] [err="[executor:1390]Prepared statement contains too many placeholders"]
```

## Root Cause

* TiDB 限制 SQL 的占位符有上限为 65535，与 MySQL 兼容，在 SQL 使用 batch 的方式执行时可能会达到这个限制。

* 如果使用 MySQL JDBC 连接 TiDB，当发生占位符太多错误，JDBC 会自动用文本协议重试，应用不会感知到错误，不会引发数据丢失问题。

## Diagnostic Steps

N/A

## Resolution

N/A

## Workaround

N/A

## Affected Versions

ALL