mark some file to been opensource for ce-farm
This commit is contained in:
@ -0,0 +1,407 @@
|
||||
drop table if exists test;
|
||||
create table test(pk1 int, pk2 varchar(64), c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
ERROR 23000: Duplicate entry '1-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '3-3' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
3 0 0 0
|
||||
3 1 1 1
|
||||
3 2 1 1
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '4-4' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
4 0 0 0
|
||||
4 1 1 1
|
||||
4 2 1 1
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '5-5' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
5 0 0 0
|
||||
5 1 1 1
|
||||
5 2 1 1
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '6-6' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
6 0 0 0
|
||||
6 1 1 1
|
||||
6 2 1 1
|
||||
update test set pk1=cast('7'as char(10)) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('7'as char(10)) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '7-7' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
7 0 0 0
|
||||
7 1 1 1
|
||||
7 2 1 1
|
||||
drop table if exists test;
|
||||
create table test(pk1 varchar(10), pk2 int, c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
ERROR 23000: Duplicate entry '1-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '3-3' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
3 0 0 0
|
||||
3 1 1 1
|
||||
3 2 1 1
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '4-4' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
4 0 0 0
|
||||
4 1 1 1
|
||||
4 2 1 1
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '5-5' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
5 0 0 0
|
||||
5 1 1 1
|
||||
5 2 1 1
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '6-6' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
6 0 0 0
|
||||
6 1 1 1
|
||||
6 2 1 1
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '7-7' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
7 0 0 0
|
||||
7 1 1 1
|
||||
7 2 1 1
|
||||
drop table if exists test;
|
||||
create table test(pk1 int, pk2 int, c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
ERROR 23000: Duplicate entry '1-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '3-3' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
3 0 0 0
|
||||
3 1 1 1
|
||||
3 2 1 1
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '4-4' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
4 0 0 0
|
||||
4 1 1 1
|
||||
4 2 1 1
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '5-5' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
5 0 0 0
|
||||
5 1 1 1
|
||||
5 2 1 1
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '6-6' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
6 0 0 0
|
||||
6 1 1 1
|
||||
6 2 1 1
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '7-7' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
7 0 0 0
|
||||
7 1 1 1
|
||||
7 2 1 1
|
||||
drop table test;
|
||||
create table test(pk1 varchar(64), pk2 varchar(64), c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
ERROR 23000: Duplicate entry '1-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '3-3' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
3 0 0 0
|
||||
3 1 1 1
|
||||
3 2 1 1
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '4-4' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
4 0 0 0
|
||||
4 1 1 1
|
||||
4 2 1 1
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '5-5' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
5 0 0 0
|
||||
5 1 1 1
|
||||
5 2 1 1
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '6-6' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
6 0 0 0
|
||||
6 1 1 1
|
||||
6 2 1 1
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '7-7' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
7 0 0 0
|
||||
7 1 1 1
|
||||
7 2 1 1
|
||||
update test set pk1=cast('8'as char(1024)) where pk1='7';
|
||||
update test set pk2=cast('9'as char(1024)) where pk1='8';
|
||||
ERROR 23000: Duplicate entry '8-9' for key 'PRIMARY'
|
||||
drop table test;
|
||||
create table test(pk1 varchar(64), pk2 varchar(64), c1 int , c2 varchar(64), primary key(pk1, pk2,c1));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
ERROR 23000: Duplicate entry '1-1-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '3-3-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
3 0 0 0
|
||||
3 1 1 1
|
||||
3 2 1 1
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '4-4-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
4 0 0 0
|
||||
4 1 1 1
|
||||
4 2 1 1
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '5-5-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
5 0 0 0
|
||||
5 1 1 1
|
||||
5 2 1 1
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '6-6-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
6 0 0 0
|
||||
6 1 1 1
|
||||
6 2 1 1
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '7-7-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
7 0 0 0
|
||||
7 1 1 1
|
||||
7 2 1 1
|
||||
update test set pk1=cast('8'as char(1024)) where pk1='7';
|
||||
update test set pk2=cast('9'as char(1024)) where pk1='8';
|
||||
ERROR 23000: Duplicate entry '8-9-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
8 0 0 0
|
||||
8 1 1 1
|
||||
8 2 1 1
|
||||
update test set c1=cast('8'as char(1024)) where pk1='7';
|
||||
update test set c1=cast('9'as char(1024)) where pk1='8';
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
8 0 9 0
|
||||
8 1 9 1
|
||||
8 2 9 1
|
||||
update test set c1=cast('10'as signed) where pk1='7';
|
||||
update test set c1=cast('11'as signed) where pk1='10';
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
8 0 9 0
|
||||
8 1 9 1
|
||||
8 2 9 1
|
||||
drop table test;
|
||||
create table test(pk1 varchar(64), pk2 varchar(64), c1 int , c2 varchar(64), primary key(c1, pk2,pk1));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
ERROR 23000: Duplicate entry '1-1-1' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
1 2 1 1
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '1-3-3' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
3 0 0 0
|
||||
3 1 1 1
|
||||
3 2 1 1
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '1-4-4' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
4 0 0 0
|
||||
4 1 1 1
|
||||
4 2 1 1
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '1-5-5' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
5 0 0 0
|
||||
5 1 1 1
|
||||
5 2 1 1
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '1-6-6' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
6 0 0 0
|
||||
6 1 1 1
|
||||
6 2 1 1
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
ERROR 23000: Duplicate entry '1-7-7' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
7 0 0 0
|
||||
7 1 1 1
|
||||
7 2 1 1
|
||||
update test set pk1=cast('8'as char(1024)) where pk1='7';
|
||||
update test set pk2=cast('9'as char(1024)) where pk1='8';
|
||||
ERROR 23000: Duplicate entry '1-9-8' for key 'PRIMARY'
|
||||
select * from test;
|
||||
pk1 pk2 c1 c2
|
||||
8 0 0 0
|
||||
8 1 1 1
|
||||
8 2 1 1
|
||||
delete from test where pk1='1000';
|
||||
delete from test where pk2=1000;
|
||||
3709
tools/deploy/mysql_test/test_suite/update/r/mysql/update2.result
Normal file
3709
tools/deploy/mysql_test/test_suite/update/r/mysql/update2.result
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -0,0 +1,217 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
# owner: xiaoyi.xy
|
||||
# owner group: SQL3
|
||||
# description: 测试update语句中使用cast 函数?
|
||||
--disable_warnings
|
||||
drop table if exists test;
|
||||
--enable_warnings
|
||||
create table test(pk1 int, pk2 varchar(64), c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
--error 1062
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
select * from test;
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('7'as char(10)) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('7'as char(10)) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
--disable_warnings
|
||||
drop table if exists test;
|
||||
--enable_warnings
|
||||
create table test(pk1 varchar(10), pk2 int, c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
--error 1062
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
select * from test;
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
--disable_warnings
|
||||
drop table if exists test;
|
||||
--enable_warnings
|
||||
create table test(pk1 int, pk2 int, c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
--error 1062
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
select * from test;
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
drop table test;
|
||||
create table test(pk1 varchar(64), pk2 varchar(64), c1 int , c2 varchar(64), primary key(pk1, pk2));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
--error 1062
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
select * from test;
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('8'as char(1024)) where pk1='7';
|
||||
--error 1062
|
||||
update test set pk2=cast('9'as char(1024)) where pk1='8';
|
||||
drop table test;
|
||||
create table test(pk1 varchar(64), pk2 varchar(64), c1 int , c2 varchar(64), primary key(pk1, pk2,c1));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
--error 1062
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
select * from test;
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('8'as char(1024)) where pk1='7';
|
||||
--error 1062
|
||||
update test set pk2=cast('9'as char(1024)) where pk1='8';
|
||||
select * from test;
|
||||
update test set c1=cast('8'as char(1024)) where pk1='7';
|
||||
update test set c1=cast('9'as char(1024)) where pk1='8';
|
||||
select * from test;
|
||||
update test set c1=cast('10'as signed) where pk1='7';
|
||||
update test set c1=cast('11'as signed) where pk1='10';
|
||||
select * from test;
|
||||
drop table test;
|
||||
create table test(pk1 varchar(64), pk2 varchar(64), c1 int , c2 varchar(64), primary key(c1, pk2,pk1));
|
||||
insert into test(pk1,pk2,c1,c2) values(0,'0',0,'0');
|
||||
insert into test(pk1,pk2,c1,c2) values(1,'1',1,'1');
|
||||
select * from test;
|
||||
insert into test(pk1,pk2,c1,c2) values(1,2,1,'1');
|
||||
select * from test;
|
||||
--error 1062
|
||||
update test set pk2=1 where pk1=1 and pk2='2';
|
||||
select * from test;
|
||||
update test set pk1='3' where c1=1 and c2=1 or c1=0;
|
||||
update test set pk1=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('3'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('4'as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('5' as decimal) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('6'as signed) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
--error 1062
|
||||
update test set pk2=cast('7'as char(1024)) where c1=1 and c2=1 or c1=0;
|
||||
select * from test;
|
||||
update test set pk1=cast('8'as char(1024)) where pk1='7';
|
||||
--error 1062
|
||||
update test set pk2=cast('9'as char(1024)) where pk1='8';
|
||||
select * from test;
|
||||
delete from test where pk1='1000';
|
||||
delete from test where pk2=1000;
|
||||
887
tools/deploy/mysql_test/test_suite/update/t/update2.test
Normal file
887
tools/deploy/mysql_test/test_suite/update/t/update2.test
Normal file
@ -0,0 +1,887 @@
|
||||
# owner: yuchen.wyc
|
||||
#tags: pl, optimizer
|
||||
# owner group: SQL1
|
||||
# description: foobar
|
||||
# tags: dml
|
||||
# case_transfer:
|
||||
# (1) update ignore语法不支持;
|
||||
# (2)update 多表操作不支持;
|
||||
# (3)create table t1 (a int, b char(255), key(a, b(20))); 不支持key为列的部分长度
|
||||
# (4)alter table t1 disable keys; 不支持;
|
||||
# (5)flush status;不支持
|
||||
# (6)系统变量%Handler_read% 不支持;
|
||||
# (7)set tmp_table_size=1024; 不支持
|
||||
# (8)系统变量不支持;SET SESSION sql_safe_updates = DEFAULT;
|
||||
# (9)HANDLER_UPDATE 系统变量不支持
|
||||
#
|
||||
# test of updating of keys
|
||||
#
|
||||
--source mysql_test/include/backup_spm_var.inc
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
connect (conn_admin, $OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection conn_admin;
|
||||
alter system set_tp tp_no = 509, error_code = 4016, frequency = 1;
|
||||
connection default;
|
||||
--enable_query_log
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
--explain_protocol 1
|
||||
--result_format 4
|
||||
|
||||
alter system set ob_enable_batched_multi_statement=true;
|
||||
--real_sleep 1
|
||||
create table t1 (a int auto_increment , primary key (a));
|
||||
insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
|
||||
update t1 set a=a+10 where a > 34;
|
||||
update t1 set a=a+100 where a > 0;
|
||||
|
||||
# Some strange updates to test some otherwise unused code
|
||||
update t1 set a=a+100 where a=1 and a=2;
|
||||
--error 1054
|
||||
update t1 set a=b+100 where a=1 and a=2;
|
||||
--error 1054
|
||||
update t1 set a=b+100 where c=1 and a=2;
|
||||
--error 1054
|
||||
update t1 set d=a+100 where a=1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
|
||||
insert into t1 values(1, 1), (2, 2);
|
||||
update t1 set b=b+1 where a>0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
|
||||
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
update t1 set b=b+1 where a>0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
|
||||
create index gkey on t1(b) global;
|
||||
insert into t1 values(1, 1), (2, 2);
|
||||
update t1 set b=b+1 where a>0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
|
||||
create index gkey on t1(b) global;
|
||||
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
update t1 set b=b+1 where a>0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int primary key, b int);
|
||||
create index gkey on t1(b) partition by hash(b) partitions 2;
|
||||
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
update /*+index(t1 gkey)*/ t1 set b=b+1 where b>0 and b<5;
|
||||
select /*+index(t1 primary)*/ * from t1 order by a;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int primary key, b int) partition by hash(a) partitions 3;
|
||||
create table t2(a int primary key, b int) partition by hash(a) partitions 3;
|
||||
insert into t1 values(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||
update /*+use_nl(t1, t2), leading(t1)*/ t1 set b=b+1 where a in (select a from t2);
|
||||
select * from t1;
|
||||
drop table t1, t2;
|
||||
|
||||
CREATE TABLE t1
|
||||
(
|
||||
place_id int (10) unsigned NOT NULL,
|
||||
shows int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ishows int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ushows int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
clicks int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
iclicks int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
uclicks int(10) unsigned DEFAULT '0' NOT NULL,
|
||||
ts timestamp,
|
||||
PRIMARY KEY (place_id,ts)
|
||||
);
|
||||
|
||||
INSERT INTO t1 (place_id,shows,ishows,ushows,clicks,iclicks,uclicks,ts)
|
||||
VALUES (1,0,0,0,0,0,0,20000928174434);
|
||||
UPDATE t1 SET shows=shows+1,ishows=ishows+1,ushows=ushows+1,clicks=clicks+1,iclicks=iclicks+1,uclicks=uclicks+1 WHERE place_id=1 AND ts>="2000-09-28 00:00:00";
|
||||
select place_id,shows from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test bug with update reported by Jan Legenhausen
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
lfdnr int(10) unsigned NOT NULL default '0',
|
||||
ticket int(10) unsigned NOT NULL default '0',
|
||||
client varchar(255) NOT NULL default '',
|
||||
replyto varchar(255) NOT NULL default '',
|
||||
subject varchar(100) NOT NULL default '',
|
||||
timestamp int(10) unsigned NOT NULL default '0',
|
||||
tstamp timestamp NOT NULL,
|
||||
status int(3) NOT NULL default '0',
|
||||
type varchar(15) NOT NULL default '',
|
||||
assignment int(10) unsigned NOT NULL default '0',
|
||||
fupcount int(4) unsigned NOT NULL default '0',
|
||||
parent int(10) unsigned NOT NULL default '0',
|
||||
activity int(10) unsigned NOT NULL default '0',
|
||||
priority tinyint(1) unsigned NOT NULL default '1',
|
||||
cc varchar(255) NOT NULL default '',
|
||||
bcc varchar(255) NOT NULL default '',
|
||||
body varchar(255) NOT NULL,
|
||||
comment varchar(255),
|
||||
header varchar(255),
|
||||
PRIMARY KEY (lfdnr),
|
||||
KEY k1 (timestamp),
|
||||
KEY k2 (type),
|
||||
KEY k3 (parent),
|
||||
KEY k4 (assignment),
|
||||
KEY ticket (ticket)
|
||||
) ;
|
||||
|
||||
INSERT INTO t1 VALUES (773,773,'','','',980257344,20010318180652,0,'Open',10,0,0,0,1,'','','','','');
|
||||
|
||||
alter table t1 change lfdnr lfdnr int(10) unsigned not null auto_increment;
|
||||
update t1 set status=1 where type='Open';
|
||||
select status from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test of ORDER BY
|
||||
#
|
||||
|
||||
create table t1 (a int not null, b int not null, key (a));
|
||||
insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3);
|
||||
SET @tmp=0;
|
||||
update t1 set b=(@tmp:=@tmp+1) order by a;
|
||||
update /*+index(t1 a)*/ t1 set b=99 where a=1 order by b asc limit 1;
|
||||
select * from t1 order by a,b;
|
||||
update t1 set b=100 where a=1 order by b desc limit 2;
|
||||
update t1 set a=a+10+b where a=1 order by b;
|
||||
select * from t1 order by a,b;
|
||||
create table t2 (a int not null, b int not null);
|
||||
insert into t2 values (1,1),(1,2),(1,3);
|
||||
update t1 set b=(select distinct 1 from (select * from t2) a);
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Test with limit (Bug #393)
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`id_param` smallint(3) unsigned NOT NULL default '0',
|
||||
`nom_option` char(40) NOT NULL default '',
|
||||
`valid` tinyint(1) NOT NULL default '0',
|
||||
KEY `id_param` (`id_param`,`nom_option`)
|
||||
);
|
||||
|
||||
INSERT INTO t1 (id_param,nom_option,valid) VALUES (185,'600x1200',1);
|
||||
|
||||
UPDATE t1 SET nom_option='test' WHERE id_param=185 AND nom_option='600x1200' AND valid=1 LIMIT 1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Multi table update test from bugs
|
||||
#
|
||||
|
||||
create table t1 (F1 VARCHAR(30), F2 VARCHAR(30), F3 VARCHAR(30), cnt int, groupid int, KEY groupid_index (groupid));
|
||||
|
||||
insert into t1 (F1,F2,F3,cnt,groupid) values ('0','0','0',1,6),
|
||||
('0','1','2',1,5), ('0','2','0',1,3), ('1','0','1',1,2),
|
||||
('1','2','1',1,1), ('1','2','2',1,1), ('2','0','1',2,4),
|
||||
('2','2','0',1,7);
|
||||
delete from m1 using t1 m1,t1 m2 where m1.groupid=m2.groupid and (m1.cnt < m2.cnt or m1.cnt=m2.cnt and m1.F3>m2.F3);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
# Bug#5553 - Multi table UPDATE IGNORE fails on duplicate keys
|
||||
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`colA` int(10) unsigned NOT NULL auto_increment,
|
||||
`colB` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`colA`)
|
||||
);
|
||||
INSERT INTO t1 VALUES (4433,5424);
|
||||
CREATE TABLE t2 (
|
||||
`colC` int(10) unsigned NOT NULL default '0',
|
||||
`colA` int(10) unsigned NOT NULL default '0',
|
||||
`colD` int(10) unsigned NOT NULL default '0',
|
||||
`colE` int(10) unsigned NOT NULL default '0',
|
||||
`colF` int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`colC`,`colA`,`colD`,`colE`)
|
||||
);
|
||||
INSERT INTO t2 VALUES (3,4433,10005,495,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10005,496,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10009,494,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10011,494,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10005,497,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10013,489,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10005,494,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10005,493,500);
|
||||
INSERT INTO t2 VALUES (3,4433,10005,492,500);
|
||||
#UPDATE IGNORE t2,t1 set t2.colE = t2.colE + 1,colF=0 WHERE t1.colA = t2.colA AND (t1.colB & 4096) > 0 AND (colE + 1) < colF;
|
||||
--error 1062
|
||||
UPDATE t2,t1 set t2.colE = t2.colE + 1,colF=0 WHERE t1.colA = t2.colA AND (t1.colB & 4096) > 0 AND (colE + 1) < colF;
|
||||
|
||||
SELECT * FROM t2;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
#
|
||||
# Bug #6054
|
||||
#
|
||||
create table t1 (c1 int, c2 char(6), c3 int);
|
||||
create table t2 (c1 int, c2 char(6));
|
||||
insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #8057
|
||||
#
|
||||
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
|
||||
insert into t1 (id_str) values ("test");
|
||||
update t1 set id_str = concat(id_str, id) where id = last_insert_id();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #8942: a problem with update and partial key part
|
||||
#
|
||||
|
||||
create table t1 (a int, b char(255), key(a, b(20)));
|
||||
insert into t1 values (0, '1');
|
||||
update /*+index(t1 a)*/ t1 set b = b + 1 where a = 0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# BUG#9103 "Erroneous data truncation warnings on multi-table updates"
|
||||
create table t1 (a int, b varchar(10), key b(b(5)));
|
||||
create table t2 (a int, b varchar(10));
|
||||
|
||||
insert into t1 values ( 1, 'abcd1e');
|
||||
insert into t1 values ( 2, 'abcd2e');
|
||||
insert into t2 values ( 1, 'abcd1e');
|
||||
insert into t2 values ( 2, 'abcd2e');
|
||||
update t1, t2 set t1.a = t2.a where t2.b = t1.b;
|
||||
show warnings;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #11868 Update with subquery with ref built with a key from the updated
|
||||
# table crashes server
|
||||
#
|
||||
create table t1(f1 int, f2 int);
|
||||
create table t2(f3 int, f4 int);
|
||||
create index idx on t2(f3);
|
||||
insert into t1 values(1,0),(2,0);
|
||||
insert into t2 values(1,1),(2,2);
|
||||
UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1);
|
||||
select * from t1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Bug #13180 sometimes server accepts sum func in update/delete where condition
|
||||
#
|
||||
create table t1(f1 int);
|
||||
select DATABASE();
|
||||
--error 1111
|
||||
update t1 set f1=1 where count(*)=1;
|
||||
select DATABASE();
|
||||
--error 1111
|
||||
delete from t1 where count(*)=1;
|
||||
drop table t1;
|
||||
|
||||
# BUG#12915: Optimize "DELETE|UPDATE ... ORDER BY ... LIMIT n" to use an index
|
||||
create table t1 ( a int, b int default 0, index (a) );
|
||||
insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0);
|
||||
|
||||
#flush status;
|
||||
select a from t1 order by a limit 1;
|
||||
#show status like 'handler_read%';
|
||||
|
||||
#flush status;
|
||||
update t1 set a=9999 order by a limit 1;
|
||||
update t1 set b=9999 order by a limit 1;
|
||||
#show status like 'handler_read%';
|
||||
|
||||
#flush status;
|
||||
delete from t1 order by a limit 1;
|
||||
#show status like 'handler_read%';
|
||||
|
||||
#flush status;
|
||||
delete from t1 order by a desc limit 1;
|
||||
#show status like 'handler_read%';
|
||||
|
||||
#alter table t1 disable keys;
|
||||
|
||||
#flush status;
|
||||
delete from t1 order by a limit 1;
|
||||
#show status like 'handler_read%';
|
||||
|
||||
select * from t1;
|
||||
update t1 set a=a+10,b=1 order by a limit 3;
|
||||
update t1 set a=a+11,b=2 order by a limit 3;
|
||||
update t1 set a=a+12,b=3 order by a limit 3;
|
||||
select * from t1 order by a;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#14186 select datefield is null not updated
|
||||
#
|
||||
create table t1 (f1 date not null);
|
||||
insert into t1 values('2000-01-01'),('0000-00-00');
|
||||
update t1 set f1='2002-02-02' where f1 is null;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#15028 Multitable update returns different numbers of matched rows
|
||||
# depending on table order
|
||||
create table t1 (f1 int);
|
||||
create table t2 (f2 int);
|
||||
insert into t1 values(1),(2);
|
||||
insert into t2 values(1),(1);
|
||||
#--enable_info
|
||||
#update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
|
||||
#--disable_info
|
||||
update t2 set f2=1;
|
||||
update t1 set f1=1 where f1=3;
|
||||
#--enable_info
|
||||
#update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
|
||||
#--disable_info
|
||||
drop table t1,t2;
|
||||
|
||||
|
||||
# BUG#15935
|
||||
#create table t1 (a int);
|
||||
#insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
#create table t2 (a int, filler1 char(200), filler2 char(200), key(a));
|
||||
#insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B;
|
||||
#flush status;
|
||||
#update t2 set a=3 where a=2;
|
||||
#show status like 'handler_read%';
|
||||
#drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #16510 Updating field named like '*name' caused server crash
|
||||
#
|
||||
create table t1(f1 int, `*f2` int);
|
||||
insert into t1 values (1,1);
|
||||
update t1 set `*f2`=1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#25126: Wrongly resolved field leads to a crash
|
||||
#
|
||||
create table t1(f1 int);
|
||||
--error 1054
|
||||
update t1 set f2=1 order by f2;
|
||||
drop table t1;
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# Bug #24035: performance degradation with condition int_field=big_decimal
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
request_id int unsigned NOT NULL auto_increment,
|
||||
user_id varchar(12) default NULL,
|
||||
time_stamp datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
ip_address varchar(15) default NULL,
|
||||
PRIMARY KEY (request_id),
|
||||
KEY user_id_2 (user_id,time_stamp)
|
||||
);
|
||||
|
||||
INSERT INTO t1 (user_id) VALUES ('user1');
|
||||
INSERT INTO t1 (user_id) VALUES ('user1');
|
||||
INSERT INTO t1 (user_id) VALUES ('user1');
|
||||
INSERT INTO t1 (user_id) VALUES ('user1');
|
||||
INSERT INTO t1 (user_id) VALUES ('user1');
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#INSERT INTO t1(user_id) SELECT user_id FROM t1;
|
||||
#
|
||||
#flush status;
|
||||
SELECT user_id FROM t1 WHERE request_id=9999999999999;
|
||||
#show status like '%Handler_read%';
|
||||
SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
|
||||
#show status like '%Handler_read%';
|
||||
UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
|
||||
#show status like '%Handler_read%';
|
||||
UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
|
||||
#show status like '%Handler_read%';
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #24010: INSERT INTO ... SELECT fails on unique constraint with data it
|
||||
# doesn't select
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
|
||||
a INT(11),
|
||||
quux decimal( 31, 30 ),
|
||||
|
||||
UNIQUE KEY bar (a),
|
||||
KEY quux (quux)
|
||||
);
|
||||
|
||||
INSERT INTO
|
||||
t1 ( a, quux )
|
||||
VALUES
|
||||
( 1, 1 ),
|
||||
( 2, 0.1 );
|
||||
|
||||
#INSERT INTO t1( a )
|
||||
# SELECT @newA := 1 + a FROM t1 WHERE quux <= 0.1;
|
||||
|
||||
SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #22364: Inconsistent "matched rows" when executing UPDATE
|
||||
#
|
||||
|
||||
#connect (con1,localhost,root,,test);
|
||||
#connection con1;
|
||||
#
|
||||
#set tmp_table_size=1024;
|
||||
#
|
||||
## Create the test tables
|
||||
#create table t1 (id int, a int, key idx(a));
|
||||
#create table t2 (id int unsigned not null auto_increment primary key, a int);
|
||||
#insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
##insert into t2(a) select a from t2;
|
||||
##insert into t2(a) select a from t2;
|
||||
##insert into t2(a) select a from t2;
|
||||
#insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
#insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
#insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
#insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
#insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
#update t2 set a=id;
|
||||
#insert into t1 select * from t2;
|
||||
#
|
||||
## Check that the number of matched rows is correct when the temporary
|
||||
## table is small enough to not be converted to MyISAM
|
||||
#select count(*) from t1 join t2 on (t1.a=t2.a);
|
||||
##--enable_info
|
||||
##update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
|
||||
##--disable_info
|
||||
#
|
||||
## Increase table sizes
|
||||
##insert into t2(a) select a from t2;
|
||||
#update t2 set a=id;
|
||||
#truncate t1;
|
||||
##insert into t1 select * from t2;
|
||||
#
|
||||
## Check that the number of matched rows is correct when the temporary
|
||||
## table has to be converted to MyISAM
|
||||
#select count(*) from t1 join t2 on (t1.a=t2.a);
|
||||
#--enable_info
|
||||
#update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
|
||||
#--disable_info
|
||||
#
|
||||
## Check that the number of matched rows is correct when there are duplicate
|
||||
## key errors
|
||||
#update t1 set a=1;
|
||||
#update t2 set a=1;
|
||||
#select count(*) from t1 join t2 on (t1.a=t2.a);
|
||||
#--enable_info
|
||||
#update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
|
||||
#--disable_info
|
||||
#
|
||||
#drop table t1,t2;
|
||||
#
|
||||
#connection default;
|
||||
#disconnect con1;
|
||||
|
||||
#
|
||||
# Bug #40745: Error during WHERE clause calculation in UPDATE
|
||||
# leads to an assertion failure
|
||||
#
|
||||
#--disable_warnings
|
||||
#DROP TABLE IF EXISTS t1;
|
||||
#DROP FUNCTION IF EXISTS f1;
|
||||
#--enable_warnings
|
||||
#
|
||||
#CREATE FUNCTION f1() RETURNS INT RETURN f1();
|
||||
#CREATE TABLE t1 (i INT);
|
||||
#INSERT INTO t1 VALUES (1);
|
||||
#
|
||||
#--error ER_SP_NO_RECURSION
|
||||
#UPDATE t1 SET i = 3 WHERE f1();
|
||||
#--error ER_SP_NO_RECURSION
|
||||
#UPDATE t1 SET i = f1();
|
||||
#
|
||||
#DROP TABLE t1;
|
||||
#DROP FUNCTION f1;
|
||||
#
|
||||
#--echo End of 5.0 tests
|
||||
#
|
||||
#--echo #
|
||||
#--echo # Bug #47919 assert in open_table during ALTER temporary table
|
||||
#--echo #
|
||||
#
|
||||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1));
|
||||
#CREATE TEMPORARY TABLE t2 LIKE t1;
|
||||
CREATE TABLE t2(f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1));
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t2 VALUES (1);
|
||||
|
||||
ALTER TABLE t2 COMMENT = 'ABC';
|
||||
#UPDATE t2, t1 SET t2.f1 = 2, t1.f1 = 9;
|
||||
ALTER TABLE t2 COMMENT = 'DEF';
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#50545: Single table UPDATE IGNORE crashes on join view in
|
||||
--echo # sql_safe_updates mode.
|
||||
--echo #
|
||||
CREATE TABLE t1 ( a INT, KEY( a ) );
|
||||
INSERT INTO t1 VALUES (0), (1);
|
||||
CREATE VIEW v1 AS SELECT t11.a, t12.a AS b FROM t1 t11, t1 t12;
|
||||
#SET SESSION sql_safe_updates = 1;
|
||||
|
||||
#--error ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
|
||||
#UPDATE IGNORE v1 SET a = 1;
|
||||
|
||||
#SET SESSION sql_safe_updates = DEFAULT;
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#54734 assert in Diagnostics_area::set_ok_status
|
||||
--echo #
|
||||
|
||||
#--disable_warnings
|
||||
#DROP TABLE IF EXISTS t1, not_exists;
|
||||
#DROP FUNCTION IF EXISTS f1;
|
||||
#DROP VIEW IF EXISTS v1;
|
||||
#--enable_warnings
|
||||
#
|
||||
#CREATE TABLE t1 (PRIMARY KEY(pk)) AS SELECT 1 AS pk;
|
||||
#CREATE FUNCTION f1() RETURNS INTEGER RETURN (SELECT 1 FROM not_exists);
|
||||
#CREATE VIEW v1 AS SELECT pk FROM t1 WHERE f1() = 13;
|
||||
#--error ER_VIEW_INVALID
|
||||
#UPDATE v1 SET pk = 7 WHERE pk > 0;
|
||||
#
|
||||
#DROP VIEW v1;
|
||||
#DROP FUNCTION f1;
|
||||
#DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Verify that UPDATE does the same number of handler_update
|
||||
--echo # operations, no matter if there is ORDER BY or not.
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (i INT);
|
||||
INSERT INTO t1 VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19),
|
||||
(20),(21),(22),(23),(24),(25),(26),(27),(28),(29),
|
||||
(30),(31),(32),(33),(34),(35);
|
||||
#CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2),
|
||||
# INDEX idx (a,b(1),c));
|
||||
CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2),
|
||||
INDEX idx (a,b,c));
|
||||
|
||||
INSERT INTO t2 VALUES (10,10,10,10),(11,11,11,11),(12,12,12,12),(13,13,13,13),(14,14,14,14),(15,15,15,15),(16,16,16,16),(17,17,17,17),(18,18,18,18),(19,19,19,19);
|
||||
|
||||
#INSERT INTO t2 SELECT i, i, i, i FROM t1;
|
||||
#FLUSH STATUS; # FLUSH is autocommit, so we put it outside of transaction
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET d = 10 WHERE b = 10 LIMIT 5;
|
||||
#SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
ROLLBACK;
|
||||
#FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5;
|
||||
#SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
ROLLBACK;
|
||||
|
||||
--echo Same test with a different UPDATE.
|
||||
|
||||
ALTER TABLE t2 DROP INDEX idx;
|
||||
alter table t2 ADD INDEX idx2 (a, b);
|
||||
#FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET c = 10 LIMIT 5;
|
||||
#SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
ROLLBACK;
|
||||
#FLUSH STATUS;
|
||||
START TRANSACTION;
|
||||
UPDATE t2 SET c = 10 ORDER BY a, b DESC LIMIT 5;
|
||||
#SHOW STATUS LIKE 'HANDLER_UPDATE';
|
||||
ROLLBACK;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists table10_bigint;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE table10_bigint (col_char_34_key char(34),col_char_24 char(24),col_char_48_unique_index char(48),col_char_26_unique_index char(26),col_char_36 char(36),col_char_26 char(26),col_char_20 char(20),col_char_37 char(37),col_char_29_key char(29),pk bigint,col_char_20_unique_index char(20),col_char_39 char(39),col_char_23 char(23),col_char_28_key char(28),col_char_45 char(45),col_char_40_unique_index char(40),col_char_43_unique_index char(43),col_char_21_key char(21),col_char_29 char(29),col_char_25_key char(25),col_timestamp_6 timestamp(6) NULL DEFAULT NULL,col_char_32_key char(32),col_char_22 char(22),col_char_45_key char(45),col_char_20_key char(20),col_char_35_key char(35),col_char_22_unique_index char(22),col_char_46_unique_index char(46),col_char_28_unique_index char(28),col_char_25 char(25),col_char_42_unique_index char(42),col_char_30_key char(30),col_char_33_unique_index char(33),col_char_42 char(42),col_char_23_key char(23),col_char_36_key char(36),col_timestamp_6_unique_index timestamp(6) NULL DEFAULT NULL,col_char_37_unique_index char(37),col_char_46_key char(46),col_char_32_unique_index char(32),col_char_34_unique_index char(34),col_char_28 char(28),col_char_25_unique_index char(25),col_char_39_unique_index char(39),col_char_30 char(30),col_char_36_unique_index char(36),col_char_47_key char(47),col_char_41_unique_index char(41),col_char_42_key char(42),col_char_48 char(48),col_char_46 char(46),col_char_48_key char(48),col_char_22_key char(22),col_bigint_unique_index bigint,col_char_38 char(38),col_char_21 char(21),col_char_43 char(43),col_char_27 char(27),col_char_40_key char(40),col_char_40 char(40),col_char_47_unique_index char(47),col_char_21_unique_index char(21),col_char_33 char(33),col_char_27_unique_index char(27),col_char_44_key char(44),col_char_35_unique_index char(35),col_char_26_key char(26),col_bigint bigint,col_char_30_unique_index char(30),col_char_45_unique_index char(45),col_char_32 char(32),col_char_41 char(41),col_char_24_unique_index char(24),col_char_31_unique_index char(31),col_char_33_key char(33),col_char_39_key char(39),col_char_35 char(35),col_timestamp_6_key timestamp(6) NULL DEFAULT NULL,col_char_44 char(44),col_char_31 char(31),col_char_43_key char(43),col_char_29_unique_index char(29),col_char_37_key char(37),col_char_23_unique_index char(23),col_char_41_key char(41),col_char_38_unique_index char(38),col_char_44_unique_index char(44),col_bigint_key bigint,col_char_24_key char(24),col_char_27_key char(27),col_char_38_key char(38),col_char_47 char(47),col_char_31_key char(31),col_char_34 char(34),key idx46(col_char_34_key ),key idx31(col_char_29_key ),primary key (pk)) ;
|
||||
insert into table10_bigint values('a', 'b','c','d','e', 'f', 'h','i','j',1,'a', 'b','c','d','e', 'f', 'h','i','j','k','2001-03-04 10:10:10', 'a', 'b','c','d','e', 'f', 'h','i','j','k','j','i','o','p','u','2001-03-04 10:10:10','a', 'b','c','d','e', 'f', 'h','i','j','k','j','i','o','p','u','y',2,'a', 'b','c','d','e', 'f','h','i','j','k','j','i','o',3,'a', 'b','c','d','e', 'f', 'h','i','j','2001-03-04 10:10:10','a', 'b','c','d','e', 'f', 'h','i','j',4,'a', 'b','c','d','e', 'f');
|
||||
UPDATE table10_bigint SET col_char_20 = 'a' ;
|
||||
delete from table10_bigint;
|
||||
alter system set ob_enable_batched_multi_statement=false;
|
||||
DROP TABLE /*! IF EXISTS*/ table10_bigint;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
drop view if exists update_view, update_view1;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int, c2 int, c3 int);
|
||||
create table t2 (c1 int, c2 int, c3 int);
|
||||
create view update_view (c1,c2) as select t1.c2 as c1, t2.c2 as c2 from t1, t2 where t1.c1 = t2.c1;
|
||||
create view update_view1 (c1,c2) as select t1.c2 as c1, t2.c2 as c2 from t1 join t2 on t1.c1 = t2.c1;
|
||||
--error 5868
|
||||
update t1, t2 set t1.c2 = t2.c2 where t1.c1 = t2.c1 order by t2.c2;
|
||||
--error 5868
|
||||
update t1 join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 order by t2.c2;
|
||||
--error 5868
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 order by t2.c2;
|
||||
--error 5868
|
||||
update update_view set c1 = c2 order by c2;
|
||||
--error 5868
|
||||
update update_view1 set c1 = c2 order by c2;
|
||||
--error 5869
|
||||
update t1, t2 set t1.c2 = t2.c2 where t1.c1 = t2.c1 limit 10;
|
||||
--error 5869
|
||||
update t1 join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 limit 10;
|
||||
--error 5869
|
||||
update t1 left join t2 on t1.c1 = t2.c1 set t1.c2 = t2.c2 limit 10;
|
||||
--error 5869
|
||||
update update_view set c1 = c2 limit 10;
|
||||
--error 5869
|
||||
update update_view1 set c1 = c2 limit 10;
|
||||
drop view update_view;
|
||||
drop view update_view1;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists gf_ar_mthly_bill;
|
||||
--enable_warnings
|
||||
|
||||
set binlog_row_image='MINIMAL';
|
||||
CREATE TABLE `gf_ar_mthly_bill` (
|
||||
`tnt_inst_id` varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT '租户机构id',
|
||||
`bill_no` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '账单号',
|
||||
`ip_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '结算对象ipid',
|
||||
`ip_role_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '结算对象pid',
|
||||
`inst_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '分支机构',
|
||||
`pd_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '产品码',
|
||||
`ar_no` varchar(34) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '合约号',
|
||||
`bill_tp` varchar(2) COLLATE utf8mb4_bin NOT NULL COMMENT '账单类型',
|
||||
`setl_tp` varchar(2) COLLATE utf8mb4_bin NOT NULL COMMENT '结算方式',
|
||||
`bill_st` varchar(2) COLLATE utf8mb4_bin NOT NULL COMMENT '核销状态',
|
||||
`bill_strt_dt` varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT '账单开始日期',
|
||||
`bill_end_dt` varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT '账单结束日期',
|
||||
`bill_mth` varchar(6) COLLATE utf8mb4_bin NOT NULL COMMENT '账单月份',
|
||||
`acrd_dt` varchar(8) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '应收日期',
|
||||
`gmt_pay` timestamp(6) NULL DEFAULT NULL COMMENT '付款时间',
|
||||
`payee_ac` varchar(34) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收款方账号',
|
||||
`payer_ac` varchar(34) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '付款方账号',
|
||||
`pay_way` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '支付方式',
|
||||
`pay_orig` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '支付来源',
|
||||
`clcn_bsc_amt` decimal(25,4) DEFAULT NULL COMMENT '计算交易量',
|
||||
`clcn_bsc_tp` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '计算依据',
|
||||
`clcn_mthd` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '计算方法',
|
||||
`chrg_itm_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收费项编码',
|
||||
`ccy` varchar(3) COLLATE utf8mb4_bin NOT NULL COMMENT '币种',
|
||||
`bill_amt` bigint(20) NOT NULL COMMENT '账单金额',
|
||||
`adj_amt` bigint(20) NOT NULL COMMENT '调整金额',
|
||||
`rcvd_amt` bigint(20) NOT NULL COMMENT '已收金额',
|
||||
`tax_tp` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '税种 01:增值税 02:营业税',
|
||||
`tax_rate` decimal(10,8) NOT NULL COMMENT '税率',
|
||||
`tax_amt` bigint(20) NOT NULL COMMENT '税额',
|
||||
`exn_inf` varchar(4000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '扩展信息',
|
||||
`anl_dmsn1` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度1',
|
||||
`anl_dmsn2` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度2',
|
||||
`anl_dmsn3` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度3',
|
||||
`anl_dmsn4` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分析维度4',
|
||||
`wrtof_dtl_cnt` bigint(20) DEFAULT NULL COMMENT '已核销明细数量',
|
||||
`to_wrtof_dtl_cnt` bigint(20) DEFAULT NULL COMMENT '待核销明细数量',
|
||||
`rcrd_id` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '数据唯一ID',
|
||||
`last_moder` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '最近修改人',
|
||||
`gmt_create` timestamp(6) NOT NULL COMMENT '创建时间',
|
||||
`gmt_modified` timestamp(6) NOT NULL COMMENT '修改时间',
|
||||
`charge_tp` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '计收费环境类型 01 主站云计收费 02 主站离线计收费 03 主站老计收费',
|
||||
`stl_ip_role_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '结算对象',
|
||||
`svc_amt` bigint(20) DEFAULT NULL COMMENT '交易金额',
|
||||
`inved_amt` bigint(20) DEFAULT NULL COMMENT '已开票金额',
|
||||
`chk_st` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '出账状态 01 初始化 02 待确认出账 03 已出账 04 客户已对账 05 对账差异',
|
||||
`acnt_day` varchar(14) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '出账日',
|
||||
`inv_amt` bigint(20) DEFAULT NULL COMMENT '可开票金额',
|
||||
`rel_inv_amt` bigint(20) DEFAULT NULL COMMENT '已关联发票金额',
|
||||
`tp` varchar(2) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '应收1 返点2',
|
||||
`payer_ip_role_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '扣款对象pid',
|
||||
`sgn_ip_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '签约对象ipid',
|
||||
`sgn_ip_role_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '签约对象pid',
|
||||
`chking_amt` bigint(20) DEFAULT '0' COMMENT '出账中金额',
|
||||
`frz_amt` bigint(20) DEFAULT '0' COMMENT '冻结金额(用于控制流程上互斥的业务)',
|
||||
`chked_amt` bigint(20) DEFAULT '0' COMMENT '已出账金额',
|
||||
`writingoff_amt` bigint(20) DEFAULT '0' COMMENT '核销中金额',
|
||||
`svc_bill_amt` bigint(20) DEFAULT NULL COMMENT '账单计费金额,计收费计费时生成的中间金额',
|
||||
`svc_ccy` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账单计费币种',
|
||||
`env_source` varchar(16) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '环境标识',
|
||||
`metadata_source` varchar(1024) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '元数据来源标识,包括(用户、商户、产品、合约、计费)来源',
|
||||
`setl_time_zone` varchar(12) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账单结算时区',
|
||||
`actg_time_zone` varchar(12) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账单核算时区',
|
||||
`inter_trade_flag` varchar(1) COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Y: 是关联交易 N: 不是关联交易',
|
||||
`actg_bill_mth` varchar(6) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '核算时区账单月份',
|
||||
`auto_writeoff_group_no` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '自动核销关联组号',
|
||||
`partition_id` varchar(4) COLLATE utf8mb4_bin GENERATED ALWAYS AS (substr(`bill_no`,23,2)) VIRTUAL,
|
||||
PRIMARY KEY (`tnt_inst_id`, `bill_no`),
|
||||
UNIQUE KEY `uk_tnt_inst_id_rcrd_id` (`tnt_inst_id`, `rcrd_id`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_acnt_day_chk_st_gmt_create` (`tnt_inst_id`, `acnt_day`, `chk_st`, `gmt_create`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_acnt_day_chk_st` (`tnt_inst_id`, `acnt_day`, `chk_st`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_ip_role_id` (`tnt_inst_id`, `ip_role_id`) LOCAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_setl_tp_bill_st` (`tnt_inst_id`, `setl_tp`, `bill_st`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_ar_no` (`tnt_inst_id`, `ar_no`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_bill_mth` (`tnt_inst_id`, `bill_mth`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_ip_role_id_bill_mth` (`tnt_inst_id`, `ip_role_id`, `bill_mth`) LOCAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_ip_id` (`tnt_inst_id`, `ip_id`, `bill_mth`, `setl_tp`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_acrd_dt_setl_tp_bill_st` (`tnt_inst_id`, `acrd_dt`, `setl_tp`, `bill_st`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_tnt_inst_id_ip_role_id_bill_mth_setl_tp` (`tnt_inst_id`, `ip_role_id`, `bill_mth`, `setl_tp`) LOCAL BLOCK_SIZE 16384,
|
||||
KEY `idx_bill_mth` (`bill_mth`, `tnt_inst_id`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_payer_ip_role_id_bill_mth` (`tnt_inst_id`, `payer_ip_role_id`, `bill_mth`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_ip_id_bill_mth` (`tnt_inst_id`, `ip_id`, `bill_mth`) GLOBAL BLOCK_SIZE 16384,
|
||||
KEY `idx_policy_id_bill_mth_inst_id_type` (`tnt_inst_id`, `inst_id`, `bill_mth`, `tp`, `anl_dmsn2`) GLOBAL,
|
||||
KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_1_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn1`, `bill_mth`) GLOBAL,
|
||||
KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_3_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn3`, `bill_mth`) GLOBAL,
|
||||
KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_4_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn4`, `bill_mth`) GLOBAL,
|
||||
KEY `idx_tnt_inst_id_inst_id_tp_anl_dmsn_2_bill_mth` (`tnt_inst_id`, `inst_id`, `tp`, `anl_dmsn2`, `bill_mth`) GLOBAL
|
||||
) partition by list columns(partition_id)
|
||||
(partition p0 values in ('00'),
|
||||
partition p80 values in ('80'),
|
||||
partition p81 values in ('81'),
|
||||
partition p82 values in ('82'),
|
||||
partition p95 values in ('95'),
|
||||
partition p96 values in ('96'),
|
||||
partition p97 values in ('97'),
|
||||
partition p98 values in ('98'),
|
||||
partition p99 values in ('99'));
|
||||
|
||||
insert into gf_ar_mthly_bill(tnt_inst_id, bill_no, ip_id, ip_role_id, inst_id,
|
||||
bill_tp, setl_tp, bill_st, bill_strt_dt, bill_end_dt, bill_mth, ccy, bill_amt,
|
||||
adj_amt, rcvd_amt, tax_tp, tax_rate, tax_amt, rcrd_id, last_moder, gmt_create, gmt_modified)
|
||||
values('ylctest', '2018090310122000040400820033834415',
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2021-05-17 12:09:34', '2021-05-17 12:09:34');
|
||||
begin;
|
||||
update gf_ar_mthly_bill
|
||||
set bill_st='01',
|
||||
gmt_pay='2021-05-17 12:09:35',
|
||||
clcn_bsc_amt='123.12',
|
||||
bill_amt=1,
|
||||
rcvd_amt=2,
|
||||
tax_amt=3,
|
||||
exn_inf='123456',
|
||||
anl_dmsn1='123456',
|
||||
anl_dmsn2='234567',
|
||||
anl_dmsn3='345678',
|
||||
anl_dmsn4='456789',
|
||||
last_moder='ylc',
|
||||
adj_amt=4,
|
||||
svc_amt = 5,
|
||||
chk_st = '06',
|
||||
inv_amt = 6,
|
||||
writingoff_amt = 7,
|
||||
wrtof_dtl_cnt = 9 ,
|
||||
to_wrtof_dtl_cnt = 8,
|
||||
chking_amt=10,
|
||||
chked_amt=11,
|
||||
frz_amt=12,
|
||||
svc_bill_amt=13,
|
||||
gmt_modified='2021-05-17 12:09:34'
|
||||
where
|
||||
tnt_inst_id='ylctest' and bill_no='2018090310122000040400820033834415';
|
||||
|
||||
select * from gf_ar_mthly_bill;
|
||||
rollback;
|
||||
connect (obsys,$OBMYSQL_MS0,admin,$OBMYSQL_PWD,test,$OBMYSQL_PORT);
|
||||
connection obsys;
|
||||
--sleep 3
|
||||
connection default;
|
||||
set binlog_row_image='MINIMAL';
|
||||
update gf_ar_mthly_bill
|
||||
set bill_st='01',
|
||||
gmt_pay='2021-05-17 12:09:35',
|
||||
clcn_bsc_amt='123.12',
|
||||
bill_amt=1,
|
||||
rcvd_amt=2,
|
||||
tax_amt=3,
|
||||
exn_inf='123456',
|
||||
anl_dmsn1='123456',
|
||||
anl_dmsn2='234567',
|
||||
anl_dmsn3='345678',
|
||||
anl_dmsn4='456789',
|
||||
last_moder='ylc',
|
||||
adj_amt=4,
|
||||
svc_amt = 5,
|
||||
chk_st = '06',
|
||||
inv_amt = 6,
|
||||
writingoff_amt = 7,
|
||||
wrtof_dtl_cnt = 9 ,
|
||||
to_wrtof_dtl_cnt = 8,
|
||||
chking_amt=10,
|
||||
chked_amt=11,
|
||||
frz_amt=12,
|
||||
svc_bill_amt=13,
|
||||
gmt_modified='2021-05-17 12:09:34'
|
||||
where
|
||||
tnt_inst_id='ylctest' and bill_no='2018090310122000040400820033834415';
|
||||
|
||||
select * from gf_ar_mthly_bill;
|
||||
drop table gf_ar_mthly_bill;
|
||||
set binlog_row_image='FULL';
|
||||
connection obsys;
|
||||
connection default;
|
||||
|
||||
#bug fix:
|
||||
drop table if exists TBFUNDSALESTAT;
|
||||
CREATE TABLE TBFUNDSALESTAT (
|
||||
PRD_CODE VARCHAR(32) DEFAULT ' ',
|
||||
SELLER_CODE VARCHAR(9) DEFAULT ' ',
|
||||
HOLD_AMT NUMBER(18,2) DEFAULT 0
|
||||
);
|
||||
|
||||
connection obsys;
|
||||
connection default;
|
||||
|
||||
UPDATE tbfundsalestat a
|
||||
SET a.hold_amt = (SELECT /*+merge*/Sum(c.hold_amt)
|
||||
FROM tbfundsalestat c
|
||||
WHERE c.prd_code = a.prd_code)
|
||||
WHERE a.seller_code = (SELECT /*+unnest*/Max(b.seller_code)
|
||||
FROM tbfundsalestat b
|
||||
WHERE a.prd_code = b.prd_code);
|
||||
|
||||
connection obsys;
|
||||
connection default;
|
||||
|
||||
UPDATE tbfundsalestat a
|
||||
SET a.hold_amt = (SELECT /*+merge*/Sum(c.hold_amt)
|
||||
FROM tbfundsalestat c
|
||||
WHERE c.prd_code = a.prd_code)
|
||||
WHERE a.seller_code = (SELECT /*+unnest*/Max(b.seller_code)
|
||||
FROM tbfundsalestat b
|
||||
WHERE a.prd_code = b.prd_code);
|
||||
|
||||
drop table if exists TBFUNDSALESTAT;
|
||||
--source mysql_test/include/recover_spm_var.inc
|
||||
156
tools/deploy/mysql_test/test_suite/update/t/update_ignore.test
Normal file
156
tools/deploy/mysql_test/test_suite/update/t/update_ignore.test
Normal file
@ -0,0 +1,156 @@
|
||||
# owner: yuchen.wyc
|
||||
# owner group: SQL1
|
||||
# description: foobar
|
||||
# tags:dml,dml_ignore
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS z0case;
|
||||
--enable_warnings
|
||||
CREATE TABLE t1(c1 TINYINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 SMALLINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 MEDIUMINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 INT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 INTEGER NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 BIGINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
|
||||
drop table t1;
|
||||
create table t1(a bigint not null);
|
||||
##插入非法字符串,预期插入0
|
||||
insert into t1 values(1);
|
||||
update ignore t1 set a='a' where a=1;
|
||||
select * from t1;
|
||||
##更新多行非法字符串,预期都更新成0
|
||||
insert into t1 values(2), (3), (4);
|
||||
update ignore t1 set a='a' where a>0;
|
||||
select * from t1;
|
||||
delete from t1;
|
||||
##更新为null,预期插入0
|
||||
update ignore t1 set a=null where a>0;
|
||||
select * from t1;
|
||||
|
||||
##测试字符串类型
|
||||
drop table t1;
|
||||
create table t1(a varchar(2) primary key);
|
||||
##超长截断
|
||||
insert into t1 values('aa');
|
||||
update ignore t1 set a='aaaaa' where a='aa';
|
||||
select * from t1;
|
||||
##更新为null,预期插入空串
|
||||
update ignore t1 set a=null where a='aa';
|
||||
select * from t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 TINYINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE IGNORE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE IGNORE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 SMALLINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE IGNORE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE IGNORE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 MEDIUMINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE IGNORE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE IGNORE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 INT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE IGNORE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE IGNORE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 INTEGER NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE IGNORE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE IGNORE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(c1 BIGINT NOT NULL);
|
||||
INSERT INTO t1 (c1) VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
UPDATE IGNORE t1 SET c1 = -1 WHERE c1 >= 5;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
UPDATE IGNORE t1 SET c1 = -10;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
create table t1 (c1 int primary key, c2 int) partition by key(c1) partitions 4;
|
||||
insert into t1 values (0,0);
|
||||
insert into t1 values (1,1);
|
||||
select * from t1;
|
||||
--error ER_NOT_SUPPORTED_YET
|
||||
update ignore t1 set c1 = 0 where c2 = 1;
|
||||
select * from t1;
|
||||
--error ER_NOT_SUPPORTED_YET
|
||||
update ignore t1 set c1 = null where c2 = 1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
CREATE TABLE Z0CASE (T1 CHAR(10) PRIMARY KEY,T2 VARCHAR(10)) DEFAULT charset= 'binary' DEFAULT collate = 'binary'
|
||||
PARTITION BY KEY(T1) PARTITIONS 3 ;
|
||||
INSERT INTO Z0CASE VALUES(11,11);
|
||||
INSERT INTO Z0CASE VALUES('','');
|
||||
select * from z0case;
|
||||
|
||||
UPDATE ignore Z0CASE SET T1=NULL WHERE T2='11';
|
||||
select * from z0case;
|
||||
|
||||
UPDATE Z0CASE SET T1='AbC' WHERE T2='11';
|
||||
select * from z0case;
|
||||
drop table z0case;
|
||||
|
||||
CREATE TABLE Z0CASE (T1 VARCHAR(10) PRIMARY KEY,T2 VARCHAR(10)) DEFAULT charset= 'binary' DEFAULT collate = 'binary'
|
||||
PARTITION BY KEY(T1) PARTITIONS 3 ;
|
||||
INSERT INTO Z0CASE VALUES(11,11);
|
||||
INSERT INTO Z0CASE VALUES('','');
|
||||
select * from z0case;
|
||||
|
||||
UPDATE ignore Z0CASE SET T1=NULL WHERE T2='11';
|
||||
select * from z0case;
|
||||
|
||||
UPDATE Z0CASE SET T1='AbC' WHERE T2='11';
|
||||
select * from z0case;
|
||||
drop table z0case;
|
||||
Reference in New Issue
Block a user