matrixorigin / matrixorigin/matrixone

[Compatibility]: INSERT IGNORE with ON DUPLICATE KEY UPDATE is rejected

Open
#28,159 0 comments 0 reactions 1 assignee Claimed by @VioletQwQ-0 View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.