github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/transaction/isolation_2.sql (about) 1 --env prepare statement 2 drop table if exists dis_table_01; 3 drop table if exists dis_table_02; 4 drop table if exists dis_table_03; 5 drop table if exists dis_table_04; 6 drop table if exists dis_table_05; 7 drop table if exists dis_table_06; 8 drop table if exists dis_table_07; 9 drop table if exists dis_view_01; 10 drop table if exists dis_view_02; 11 drop table if exists dis_temp_01; 12 drop table if exists iso_table_0001; 13 14 create table dis_table_01(a int,b varchar(25)); 15 insert into dis_table_01 select 20,'apple'; 16 insert into dis_table_01 select 21,'orange'; 17 start transaction; 18 create view dis_view_01 as select * from dis_table_01; 19 -- @session:id=1{ 20 use isolation_2; 21 begin; 22 insert into dis_table_01 values (22,'pear'); 23 select * from dis_table_01; 24 update dis_table_01 set b='bens' where a=20; 25 select * from dis_table_01; 26 rollback ; 27 -- @session} 28 select * from dis_view_01; 29 -- @session:id=2{ 30 use isolation_2; 31 select * from dis_table_01; 32 update dis_table_01 set a=19 where b='apple'; 33 select * from dis_table_01; 34 -- @session} 35 commit; 36 select * from dis_view_01; 37 select * from dis_table_01; 38 39 ------------------------- 40 create table dis_table_02(a int not null auto_increment,b varchar(25) not null,c datetime,primary key(a),key bstr (b),key cdate (c) ); 41 insert into dis_table_02(b,c) values ('aaaa','2020-09-08'); 42 insert into dis_table_02(b,c) values ('aaaa','2020-09-08'); 43 create table dis_table_03(b varchar(25) primary key,c datetime); 44 begin ; 45 insert into dis_table_03 select b,c from dis_table_02; 46 select * from dis_table_03; 47 -- @session:id=1{ 48 insert into dis_table_03 select 'bbb','2012-09-30'; 49 update dis_table_03 set b='aaa'; 50 select * from dis_table_03; 51 -- @session} 52 -- @session:id=2{ 53 select * from dis_table_03; 54 truncate table dis_table_03; 55 -- @session} 56 insert into dis_table_03 select 'bbb','2012-09-30'; 57 select * from dis_table_03; 58 commit; 59 select * from dis_table_03; 60 61 begin ; 62 insert into dis_table_02 values (null,'ccc',null); 63 select * from dis_table_02; 64 -- @session:id=1{ 65 start transaction ; 66 insert into dis_table_02 values (5,null,'1345-09-23'); 67 select * from dis_table_02; 68 commit; 69 -- @session} 70 update dis_table_02 set a=90; 71 commit; 72 select * from dis_table_02; 73 74 --------------------------------------- 75 start transaction ; 76 create database dis_db_01; 77 use dis_db_01; 78 create table dis_table_04(a int); 79 insert into dis_table_04 values (4); 80 -- @session:id=1{ 81 create table dis_table_04(a int); 82 insert into dis_table_04 values (4); 83 drop database dis_db_01; 84 -- @session} 85 delete from dis_table_04 where a=4; 86 select * from dis_table_04; 87 rollback ; 88 select * from dis_db_01.dis_table_04; 89 drop database dis_db_01; 90 drop table isolation_2.dis_table_04; 91 --------------------------------------- 92 begin; 93 use isolation_2; 94 create external table ex_table_dis(num_col1 tinyint,num_col2 smallint,num_col3 int,num_col4 bigint,num_col5 tinyint unsigned,num_col6 smallint unsigned,num_col7 int unsigned,num_col8 bigint unsigned ,num_col9 float(5,3),num_col10 double(6,5),num_col11 decimal(38,19)) infile{"filepath"='$resources/external_table_file/ex_table_number.csv'} fields terminated by ',' enclosed by '\"' lines terminated by '\n'; 95 select num_col1,num_col2 from ex_table_dis; 96 -- @session:id=1{ 97 select * from ex_table_dis; 98 -- @session} 99 update ex_table_dis set num_col1=1000; 100 select num_col1,num_col2 from ex_table_dis; 101 commit; 102 select num_col1,num_col2 from ex_table_dis; 103 -- @session:id=1{ 104 insert into dis_table_01 select num_col1,'fffff' from ex_table_dis; 105 select * from dis_table_01; 106 select num_col1,num_col2 from ex_table_dis; 107 drop table ex_table_dis; 108 -- @session} 109 select * from dis_table_01; 110 111 begin; 112 create view aaa as select * from dis_table_02; 113 show create table aaa ; 114 -- @session:id=1{ 115 insert into dis_table_02(b,c) values ('vvv','2000-09-08'); 116 -- @session} 117 -- @session:id=2{ 118 begin ; 119 select b, c from dis_table_02; 120 delete from dis_table_02 where a=1; 121 rollback ; 122 -- @session} 123 commit ; 124 select b, c from aaa; 125 -- @session:id=1{ 126 select b, c from aaa; 127 -- @session} 128 drop view aaa ; 129 130 start transaction ; 131 insert into dis_table_02(b,c) values ('','1999-06-04'); 132 -- @session:id=1{ 133 prepare stmt1 from "update dis_table_02 set c='2222-07-12' where a=2"; 134 execute stmt1; 135 select b, c from dis_table_02; 136 -- @session} 137 update dis_table_02 set c='2000-09-02' where a=2; 138 select b, c from dis_table_02; 139 -- @session:id=2{ 140 begin ; 141 create database dis_db_02; 142 rollback ; 143 -- @session} 144 commit; 145 select b, c from dis_table_02; 146 147 begin ; 148 prepare stmt1 from "insert into dis_table_02(b,c) values('oppo','1009-11-11')"; 149 execute stmt1; 150 select b, c from dis_table_02; 151 -- @session:id=1{ 152 select b, c from dis_table_02; 153 -- @session} 154 prepare stmt2 from "update dis_table_02 set a=null"; 155 execute stmt2; 156 commit; 157 select b, c from dis_table_02; 158 use dis_db_02; 159 select b, c from dis_table_02; 160 insert into dis_table_02(b,c) values ('','1999-06-04'); 161 162 ------------------------------ 163 create temporary table dis_temp_01(a int,b varchar(100),primary key(a)); 164 begin ; 165 insert into dis_temp_01 values (233,'uuuu'); 166 -- @session:id=1{ 167 select * from dis_temp_01; 168 -- @session} 169 select * from dis_temp_01; 170 -- @session:id=1{ 171 truncate table dis_temp_01; 172 -- @session} 173 rollback ; 174 select * from dis_temp_01; 175 drop table dis_temp_01; 176 177 start transaction; 178 load data infile '$resources/external_table_file/isolation_01.csv' into table dis_table_02; 179 -- @session:id=1{ 180 update dis_table_02 set b='pppp'; 181 select b, c from dis_table_02; 182 -- @session} 183 select b, c from dis_table_02; 184 -- @session:id=2{ 185 begin ; 186 create view dis_view_02 as select * from dis_table_02; 187 insert into dis_table_02 values (2,'oooo','1802-03-20'); 188 select b, c from dis_table_02; 189 -- @session} 190 -- @session:id=1{ 191 use isolation_2; 192 select * from dis_view_02; 193 -- @session} 194 select * from dis_view_02; 195 -- @session:id=2{ 196 insert into dis_table_02 values (2,'oooo','1802-03-20'); 197 -- @session} 198 commit; 199 -- @session:id=1{ 200 select b, c from dis_table_02; 201 -- @session} 202 select * from dis_view_02; 203 drop table dis_view_02; 204 205 begin ; 206 select * from dis_table_01; 207 -- @session:id=1{ 208 truncate table dis_table_01; 209 -- @session} 210 insert into dis_table_01 select 9999,'abcdefg'; 211 -- @session:id=1{ 212 select * from dis_table_01; 213 -- @session} 214 explain select * from dis_table_01; 215 commit ; 216 -- @session:id=1{ 217 select * from dis_table_01; 218 -- @session} 219 220 begin ; 221 delete from dis_table_02 where a>1;; 222 select b, c from dis_table_02; 223 -- @session:id=1{ 224 select b, c from dis_table_02; 225 update dis_table_02 set b='tittttt' where a>1; 226 select b, c from dis_table_02; 227 -- @session} 228 select b, c from dis_table_02; 229 -- @session:id=2{ 230 start transaction ; 231 update dis_table_02 set b='catttteee' where a>1; 232 select b, c from dis_table_02; 233 commit; 234 -- @session} 235 commit; 236 select b, c from dis_table_02; 237 -- @session:id=1{ 238 select b, c from dis_table_02; 239 -- @session} 240 241 -------------------------------- 242 create database if not exists iso_db_02; 243 start transaction ; 244 use iso_db_02; 245 show tables; 246 -- @session:id=1{ 247 begin ; 248 use iso_db_02; 249 create table iso_table_0001(a int); 250 -- @session} 251 insert into iso_table_0001 values (2); 252 -- @session:id=2{ 253 use iso_db_02; 254 create table iso_table_0001(a int); 255 drop database iso_db_02; 256 -- @session} 257 -- @session:id=1{ 258 commit; 259 -- @session} 260 create table iso_table_0001(a int); 261 commit; 262 use iso_db_02; 263 select * from iso_table_0001; 264 265 use isolation_2; 266 create table dis_table_04(a int,b varchar(25) not null,c datetime,primary key(a),unique key bstr (b),key cdate (c)); 267 insert into dis_table_04 values (6666,'kkkk','2010-11-25'); 268 insert into dis_table_04 values (879,'oopp','2011-11-26'); 269 select * from dis_table_01; 270 start transaction ; 271 use isolation_2; 272 update dis_table_04 set b=(select 'ccccool' from dis_table_01 limit 1) where a=879; 273 select * from dis_table_04 ; 274 -- @session:id=1{ 275 begin ; 276 use isolation_2; 277 update dis_table_04 set b='uuyyy' where a=879; 278 select * from dis_table_04; 279 commit; 280 -- @session} 281 commit; 282 update dis_table_04 set b=(select 'kkkk') where a=879; 283 -- @session:id=1{ 284 select * from dis_table_04; 285 -- @session} 286 ---------------------------- 287 begin ; 288 use isolation_2; 289 create temporary table dis_table_05(a int,b varchar(25) not null,c datetime,primary key(a),unique key bstr (b),key cdate (c)); 290 load data infile 'fff.csv' to dis_table_05; 291 -- @session:id=1{ 292 use isolation_2; 293 select * from dis_table_05; 294 -- @session} 295 insert into dis_table_05 values (8900,'kkkk77','1772-04-20'); 296 commit; 297 select * from dis_table_05; 298 -- @session:id=1{ 299 select * from dis_table_05; 300 -- @session} 301 drop table dis_table_05; 302 303 -- auto_increment 主键冲突 304 use isolation_2; 305 create table dis_table_06(a int auto_increment primary key,b varchar(25),c double default 0.0); 306 insert into dis_table_06(a,b) values(2,'moon'); 307 insert into dis_table_06(b) values('sun'); 308 begin; 309 use isolation_2; 310 insert into dis_table_06(a,b) values (3,'llllp'); 311 select * from dis_table_06; 312 -- @session:id=1{ 313 use isolation_2; 314 insert into dis_table_06 values (3,'uuubbb',12.02); 315 select * from dis_table_06; 316 -- @session} 317 insert into dis_table_06(a,b) values (4,'cookie'); 318 commit; 319 select * from dis_table_06; 320 321 begin; 322 use isolation_2; 323 insert into dis_table_06(a,b) values (5,'leetio'); 324 select * from dis_table_06; 325 -- @session:id=1{ 326 update dis_table_06 set a=5 where b='sun'; 327 select * from dis_table_06; 328 -- @session} 329 commit; 330 select * from dis_table_06; 331 drop table dis_table_06; 332 333 --compk 冲突 334 create table dis_table_07(a int,b varchar(25),c double,d datetime,primary key(a,b,d)); 335 insert into dis_table_07 values (1,'yellow',20.09,'2020-09-27'); 336 begin; 337 insert into dis_table_07 values (2,'blue',10.00,'2021-01-20'); 338 -- @session:id=1{ 339 use isolation_2; 340 insert into dis_table_07 values (2,'blue',11.00,'2021-01-20'); 341 select * from dis_table_07; 342 -- @session} 343 select * from dis_table_07; 344 commit; 345 select * from dis_table_07; 346 -- @session:id=1{ 347 insert into dis_table_07 values (2,'blue',12.00,'2024-01-20'); 348 -- @session} 349 begin; 350 update dis_table_07 set d='2024-01-20' where a=2 and b='blue'; 351 -- @session:id=1{ 352 select * from dis_table_07; 353 -- @session} 354 select * from dis_table_07; 355 commit; 356 select * from dis_table_07; 357 drop table dis_table_07; 358 359 360