pingcap / pingcap/tidb

TiDB can specify table which will be updated in the FROM clause

Open
#59,786 0 comments 0 reactions 0 assignees View on GitHub
severity/minor sig/execution type/bug
Dominant language
Go
Stars
40.5k
Forks
6.2k
PR merge metrics
PR metrics pending

Description

## Bug Report

Please answer these questions before submitting your issue. Thanks!

### 1. Minimal reproduce step (Required)

```
CREATE TABLE t1 (id INT);
INSERT INTO t1 VALUES (1), (2);
DELETE FROM t1 WHERE id = (SELECT COUNT(*) FROM t1);
```

### 2. What did you expect to see? (Required)

```
mysql> CREATE TABLE t1 (id INT);
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO t1 VALUES (1), (2);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> DELETE FROM t1 WHERE id = (SELECT COUNT(*) FROM t1);
ERROR 1093 (HY000): You can't specify target table 't1' for update in FROM clause
```

### 3. What did you see instead (Required)

```
mysql> CREATE TABLE t1 (id INT);
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO t1 VALUES (1), (2);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> DELETE FROM t1 WHERE id = (SELECT COUNT(*) FROM t1);
Query OK, 1 row affected (0.00 sec)
```

### 4. What is your TiDB version? (Required)

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.