matrixorigin / matrixorigin/matrixone
[Compatibility]: INSERT IGNORE with ON DUPLICATE KEY UPDATE is rejected
Open
kind/bug
severity/s1
- Dominant language
- Go
- Stars
- 1.9k
- Forks
- 311
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 768
Description
## 现象
在 MatrixOne main `99ed717b769e261b842c2f17345bd65865fc1470`,MySQL 合法的 `INSERT IGNORE ... ON DUPLICATE KEY UPDATE` 语句被 parser 拒绝:
```sql
INSERT IGNORE INTO t VALUES (1,'b','x',99)
ON DUPLICATE KEY UPDATE v=VALUES(v);
```
错误为 SQL parser error,表中数据保持不变。去掉 `IGNORE` 后同类 ODKU 可以执行。
## 期望
支持 `IGNORE` 与 ODKU 的组合。MySQL 8.4 明确支持该语法,并用于忽略冲突后继续处理后续行。
## 影响
依赖幂等批量写入的应用无法使用 MySQL 兼容语法处理冲突行。
参考:[MySQL INSERT ... ON DUPLICATE KEY UPDATE](https://dev.mysql.com/doc/refman/8.4/en/insert-on-duplicate.html)
## 复现信息
- MatrixOne main: `99ed717b769e261b842c2f17345bd65865fc1470`
- 重复执行 3 次,结果一致
Contributor guide
Assessment
This issue has not been assessed yet.