236 lines
23 KiB
Plaintext
236 lines
23 KiB
Plaintext
create table t1(t1 tinyint, t2 tinyint, ut1 tinyint unsigned,
|
||
s1 smallint, s2 smallint, us1 smallint unsigned,
|
||
m1 mediumint, m2 mediumint, um1 mediumint unsigned,
|
||
i1 int, i2 int, ui1 int unsigned,
|
||
b1 bigint, b2 bigint, ub1 bigint unsigned
|
||
)engine=ndb;
|
||
insert into t1 values(127, -128, 255, 32767, -32768, 65535, 8388607, -8388608,
|
||
16777215, 2147483647, -2147483648, 4294967295, 9223372036854775807,
|
||
-9223372036854775808, 18446744073709551615);
|
||
*********************************
|
||
* Backup the int type
|
||
*********************************
|
||
************************************
|
||
* Restore the int type not promoted
|
||
************************************
|
||
delete from t1;
|
||
select * from t1;
|
||
t1 t2 ut1 s1 s2 us1 m1 m2 um1 i1 i2 ui1 b1 b2 ub1
|
||
127 -128 255 32767 -32768 65535 8388607 -8388608 16777215 2147483647 -2147483648 4294967295 9223372036854775807 -9223372036854775808 18446744073709551615
|
||
******************************************
|
||
* The first group type promotion including:
|
||
* tinyint(unsigned)->smallint(unsigned),
|
||
* smallint(unsigned)->mediumint(unsigned),
|
||
* mediumint(unsigned)->int(unsigned),
|
||
* int(unsigned)->bigint(unsigned)
|
||
******************************************
|
||
alter table t1 modify column t1 smallint, modify column t2 smallint,
|
||
modify column ut1 smallint unsigned, modify column s1 mediumint,
|
||
modify column s2 mediumint, modify column us1 mediumint unsigned,
|
||
modify column m1 int, modify column m2 int, modify column um1 int unsigned,
|
||
modify column i1 bigint, modify column i2 bigint,
|
||
modify column ui1 bigint unsigned;
|
||
create table t3 as select * from t1;
|
||
delete from t1;
|
||
select count(*) from t1 natural join t3;
|
||
count(*)
|
||
1
|
||
********************************************
|
||
* The second group type promotion including:
|
||
* tinyint(unsigned)->mediumint(unsigned),
|
||
* smallint(unsigned)->int(unsigned),
|
||
* mediumint(unsigned)->bigint(unsigned),
|
||
* int(unsigned)->bigint(unsigned)
|
||
*********************************************
|
||
drop table t3;
|
||
alter table t1 modify column t1 mediumint, modify column t2 mediumint,
|
||
modify column ut1 mediumint unsigned, modify column s1 int,
|
||
modify column s2 int, modify column us1 int unsigned,
|
||
modify column m1 bigint, modify column m2 bigint,
|
||
modify column um1 bigint unsigned, modify column i1 bigint,
|
||
modify column i2 bigint, modify column ui1 bigint unsigned;
|
||
create table t3 as select * from t1;
|
||
delete from t1;
|
||
select count(*) from t1 natural join t3;
|
||
count(*)
|
||
1
|
||
*******************************************
|
||
* The third group type promotion including:
|
||
* tinyint(unsigned)->int(unsigned),
|
||
* smallint(unsigned)->bigint(unsigned),
|
||
* mediumint(unsigned)->bigint(unsigned),
|
||
* int(unsigned)->bigint(unsigned)
|
||
*******************************************
|
||
drop table t3;
|
||
alter table t1 modify column t1 int, modify column t2 int,
|
||
modify column ut1 int unsigned, modify column s1 bigint,
|
||
modify column s2 bigint, modify column us1 bigint unsigned,
|
||
modify column m1 bigint, modify column m2 bigint,
|
||
modify column um1 bigint unsigned, modify column i1 bigint,
|
||
modify column i2 bigint, modify column ui1 bigint unsigned;
|
||
create table t3 as select * from t1;
|
||
delete from t1;
|
||
select count(*) from t1 natural join t3;
|
||
count(*)
|
||
1
|
||
********************************************
|
||
* The fourth group type promotion including:
|
||
* tinyint(unsigned)->bigint(unsigned),
|
||
* smallint(unsigned)->bigint(unsigned),
|
||
* mediumint(unsigned)->bigint(unsigned),
|
||
* int(unsigned)->bigint(unsigned)
|
||
********************************************
|
||
drop table t3;
|
||
alter table t1 modify column t1 bigint, modify column t2 bigint,
|
||
modify column ut1 bigint unsigned, modify column s1 bigint,
|
||
modify column s2 bigint, modify column us1 bigint unsigned,
|
||
modify column m1 bigint, modify column m2 bigint,
|
||
modify column um1 bigint unsigned, modify column i1 bigint,
|
||
modify column i2 bigint, modify column ui1 bigint unsigned;
|
||
create table t3 as select * from t1;
|
||
delete from t1;
|
||
select count(*) from t1 natural join t3;
|
||
count(*)
|
||
1
|
||
drop table t1;
|
||
drop table t3;
|
||
create table t2(ch1 char(20), ch2 char(200), vch1 varchar(20),
|
||
vch2 varchar(200), vch3 varchar(2000), b1 binary(20), b2 binary(200),
|
||
vb1 varbinary(20), vb2 varbinary(200), vb3 varbinary(2000)
|
||
) character set latin1 engine = ndb;
|
||
insert into t2 values(repeat('a', 20), repeat('b', 200), repeat('c', 20),
|
||
repeat('d', 200), repeat('e', 1000), repeat('f', 20), repeat('g', 200),
|
||
repeat('h', 20), repeat('i', 200), repeat('j', 1500));
|
||
*********************************
|
||
* Backup the char and binary type
|
||
*********************************
|
||
************************************************
|
||
* Restore the char and binary type not promoted
|
||
************************************************
|
||
delete from t2;
|
||
select * from t2;
|
||
ch1 ch2 vch1 vch2 vch3 b1 b2 vb1 vb2 vb3
|
||
aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccc dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ffffffffffffffffffff gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg hhhhhhhhhhhhhhhhhhhh iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
|
||
select length(ch1), length(ch2),length(vch1),length(vch2),length(vch3),
|
||
length(b1),length(b2),length(vb1),length(vb2),length(vb3) from t2;
|
||
length(ch1) length(ch2) length(vch1) length(vch2) length(vch3) length(b1) length(b2) length(vb1) length(vb2) length(vb3)
|
||
20 200 20 200 1000 20 200 20 200 1500
|
||
*************************************************
|
||
* char, binary, varchar, varbinary type promotion
|
||
*************************************************
|
||
alter table t2 modify column ch1 char(255), modify column ch2 varchar(200),
|
||
modify column vch1 varchar(200), modify column vch2 varchar(500),
|
||
modify column vch3 varchar(2500), modify column b1 binary(255),
|
||
modify column b2 varbinary(255), modify column vb1 varbinary(100),
|
||
modify column vb2 varbinary(300), modify column vb3 varbinary(2100);
|
||
create table t4 as select * from t2;
|
||
show create table t4;
|
||
Table Create Table
|
||
t4 CREATE TABLE `t4` (
|
||
`ch1` char(255) CHARACTER SET latin1 DEFAULT NULL,
|
||
`ch2` varchar(200) CHARACTER SET latin1 DEFAULT NULL,
|
||
`vch1` varchar(200) CHARACTER SET latin1 DEFAULT NULL,
|
||
`vch2` varchar(500) CHARACTER SET latin1 DEFAULT NULL,
|
||
`vch3` varchar(2500) CHARACTER SET latin1 DEFAULT NULL,
|
||
`b1` binary(255) DEFAULT NULL,
|
||
`b2` varbinary(255) DEFAULT NULL,
|
||
`vb1` varbinary(100) DEFAULT NULL,
|
||
`vb2` varbinary(300) DEFAULT NULL,
|
||
`vb3` varbinary(2100) DEFAULT NULL
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
||
select * from t4;
|
||
ch1 ch2 vch1 vch2 vch3 b1 b2 vb1 vb2 vb3
|
||
aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccc dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ffffffffffffffffffff |