Skip to content

Commit 4f246a8

Browse files
AliSQLAliSQL
authored andcommitted
[Feature] Issue alibaba#48 SELECT...FROM UPDATE
Description: ------------ Support new statement syntax like 'SELECT * FROM UPDATE T SET ...' It is a real UPDATE statement, by the way return the updated row data.
1 parent 58ebcbd commit 4f246a8

9 files changed

Lines changed: 1332 additions & 9 deletions

mysql-test/r/select_update.result

Lines changed: 673 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
reset master;
2+
use test;
3+
drop table if exists t1;
4+
create table t1(id int not null primary key,first varchar(32), last varchar(32), age int) engine=innodb;
5+
insert into t1 values(100, 'Zara', 'Ali', 18);
6+
insert into t1 values(101, 'Mahnaz', 'Fatma', 25);
7+
insert into t1 values(102, 'Zaid', 'Khan', 30);
8+
insert into t1 values(103, 'Sumit', 'Mittal', 28);
9+
select id, first, last, age from t1;
10+
id first last age
11+
100 Zara Ali 18
12+
101 Mahnaz Fatma 25
13+
102 Zaid Khan 30
14+
103 Sumit Mittal 28
15+
select id, age, UPPER(first) as name from update t1 set age=age+30 where id in(100, 101);
16+
id age name
17+
100 48 ZARA
18+
101 55 MAHNAZ
19+
select id, first, last, age from t1;
20+
id first last age
21+
100 Zara Ali 48
22+
101 Mahnaz Fatma 55
23+
102 Zaid Khan 30
24+
103 Sumit Mittal 28
25+
show binlog events in 'master-bin.000001' from 120;
26+
Log_name Pos Event_type Server_id End_log_pos Info
27+
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */
28+
master-bin.000001 # Query # # use `test`; create table t1(id int not null primary key,first varchar(32), last varchar(32), age int) engine=innodb
29+
master-bin.000001 # Query # # BEGIN
30+
master-bin.000001 # Query # # use `test`; insert into t1 values(100, 'Zara', 'Ali', 18)
31+
master-bin.000001 # Xid # # COMMIT /* XID */
32+
master-bin.000001 # Query # # BEGIN
33+
master-bin.000001 # Query # # use `test`; insert into t1 values(101, 'Mahnaz', 'Fatma', 25)
34+
master-bin.000001 # Xid # # COMMIT /* XID */
35+
master-bin.000001 # Query # # BEGIN
36+
master-bin.000001 # Query # # use `test`; insert into t1 values(102, 'Zaid', 'Khan', 30)
37+
master-bin.000001 # Xid # # COMMIT /* XID */
38+
master-bin.000001 # Query # # BEGIN
39+
master-bin.000001 # Query # # use `test`; insert into t1 values(103, 'Sumit', 'Mittal', 28)
40+
master-bin.000001 # Xid # # COMMIT /* XID */
41+
master-bin.000001 # Query # # BEGIN
42+
master-bin.000001 # Query # # use `test`; update t1 set age=age+30 where id in(100, 101)
43+
master-bin.000001 # Xid # # COMMIT /* XID */
44+
drop table t1;

0 commit comments

Comments
 (0)