114 lines
2.1 KiB
Plaintext
114 lines
2.1 KiB
Plaintext
DROP TABLE IF EXISTS t1;
|
|
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=xengine;
|
|
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(10000,'foobar');
|
|
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
|
UPDATE t1 SET a=a+100;
|
|
SELECT a,b FROM t1;
|
|
a b
|
|
101 a
|
|
101 a
|
|
10100 foobar
|
|
10100 foobar
|
|
102 b
|
|
102 b
|
|
103 c
|
|
103 c
|
|
104 d
|
|
104 d
|
|
105 e
|
|
105 e
|
|
UPDATE t1 SET a=a-100, b=DEFAULT WHERE a>100;
|
|
SELECT a,b FROM t1;
|
|
a b
|
|
1 NULL
|
|
1 NULL
|
|
10000 NULL
|
|
10000 NULL
|
|
2 NULL
|
|
2 NULL
|
|
3 NULL
|
|
3 NULL
|
|
4 NULL
|
|
4 NULL
|
|
5 NULL
|
|
5 NULL
|
|
UPDATE t1 SET b = 'update' WHERE a <= 4 ORDER BY b DESC, a ASC LIMIT 1;
|
|
SELECT a,b FROM t1;
|
|
a b
|
|
1 NULL
|
|
1 update
|
|
10000 NULL
|
|
10000 NULL
|
|
2 NULL
|
|
2 NULL
|
|
3 NULL
|
|
3 NULL
|
|
4 NULL
|
|
4 NULL
|
|
5 NULL
|
|
5 NULL
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=xengine;
|
|
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(10000,'foobar');
|
|
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
|
BEGIN;
|
|
UPDATE t1 SET a=a+100;
|
|
UPDATE t1 SET a=a-50, b=DEFAULT WHERE a>100;
|
|
COMMIT;
|
|
SELECT * FROM t1 ORDER BY pk;
|
|
a b pk
|
|
10050 NULL 12
|
|
10050 NULL 6
|
|
51 NULL 1
|
|
51 NULL 7
|
|
52 NULL 2
|
|
52 NULL 8
|
|
53 NULL 3
|
|
53 NULL 9
|
|
54 NULL 10
|
|
54 NULL 4
|
|
55 NULL 11
|
|
55 NULL 5
|
|
BEGIN;
|
|
UPDATE t1 SET b = 'update' WHERE a <= 4 ORDER BY a DESC, b ASC LIMIT 3;
|
|
UPDATE t1 SET b = '';
|
|
ROLLBACK;
|
|
SELECT * FROM t1 ORDER BY pk;
|
|
a b pk
|
|
51 NULL 1
|
|
52 NULL 2
|
|
53 NULL 3
|
|
54 NULL 4
|
|
55 NULL 5
|
|
10050 NULL 6
|
|
51 NULL 7
|
|
52 NULL 8
|
|
53 NULL 9
|
|
54 NULL 10
|
|
55 NULL 11
|
|
10050 NULL 12
|
|
BEGIN;
|
|
UPDATE t1 SET b = 'update2' WHERE a <= 100;
|
|
SAVEPOINT spt1;
|
|
UPDATE t1 SET b = '';
|
|
ROLLBACK TO SAVEPOINT spt1;
|
|
ERROR HY000: XEngine currently does not support ROLLBACK TO SAVEPOINT if modifying rows.
|
|
UPDATE t1 SET b = 'upd' WHERE a = 10050;
|
|
ERROR HY000: This transaction was rolled back and cannot be committed. Only supported operation is to roll it back, so all pending changes will be discarded. Please restart another transaction.
|
|
ROLLBACK;
|
|
SELECT * FROM t1 ORDER BY pk;
|
|
a b pk
|
|
51 NULL 1
|
|
52 NULL 2
|
|
53 NULL 3
|
|
54 NULL 4
|
|
55 NULL 5
|
|
10050 NULL 6
|
|
51 NULL 7
|
|
52 NULL 8
|
|
53 NULL 9
|
|
54 NULL 10
|
|
55 NULL 11
|
|
10050 NULL 12
|
|
DROP TABLE t1;
|