mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
50 lines
1.2 KiB
Text
50 lines
1.2 KiB
Text
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
|
CREATE TABLE t1
|
|
(
|
|
id SMALLINT NOT NULL,
|
|
PRIMARY KEY (id)
|
|
) ENGINE=innodb
|
|
PARTITION BY RANGE (id)
|
|
(
|
|
PARTITION p1 VALUES LESS THAN (2),
|
|
PARTITION p2 VALUES LESS THAN (4),
|
|
PARTITION p3 VALUES LESS THAN (10)
|
|
);
|
|
INSERT INTO t1 VALUES (1),(2),(3);
|
|
# Test READ COMMITTED -> REPEATABLE READ
|
|
FLUSH TABLES;
|
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
BEGIN;
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
3
|
|
connect con1, localhost, root,,;
|
|
connection con1;
|
|
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES(7);
|
|
COMMIT;
|
|
connection default;
|
|
COMMIT;
|
|
FLUSH TABLES;
|
|
# Test REPEATABLE READ -> READ COMMITTED
|
|
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
|
BEGIN;
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
3
|
|
7
|
|
connection con1;
|
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
BEGIN;
|
|
INSERT INTO t1 VALUES(9);
|
|
ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
|
COMMIT;
|
|
disconnect con1;
|
|
connection default;
|
|
COMMIT;
|
|
DROP TABLE t1;
|