657 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			657 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | drop table if exists t1,t2,t3; | ||
|  | create table t1 (a int not null); | ||
|  | insert into t1 values (1); | ||
|  | insert into t1 values (a+2); | ||
|  | insert into t1 values (a+3),(a+4); | ||
|  | insert into t1 values (5),(a+6); | ||
|  | select * from t1; | ||
|  | a | ||
|  | 1 | ||
|  | 2 | ||
|  | 3 | ||
|  | 4 | ||
|  | 5 | ||
|  | 6 | ||
|  | drop table t1; | ||
|  | create table t1 (id int not null auto_increment primary key, username varchar(32) not null, unique (username)); | ||
|  | insert into t1 values (0,"mysql"); | ||
|  | insert into t1 values (0,"mysql ab"); | ||
|  | insert into t1 values (0,"mysql a"); | ||
|  | insert into t1 values (0,"r1manic"); | ||
|  | insert into t1 values (0,"r1man"); | ||
|  | drop table t1; | ||
|  | create table t1 (a int not null auto_increment, primary key (a), t timestamp, c char(10) default "hello", i int); | ||
|  | insert into t1 values (default,default,default,default), (default,default,default,default), (4,0,"a",5),(default,default,default,default); | ||
|  | select a,t>0,c,i from t1; | ||
|  | a	t>0	c	i | ||
|  | 1	1	hello	NULL | ||
|  | 2	1	hello	NULL | ||
|  | 4	0	a	5 | ||
|  | 5	1	hello	NULL | ||
|  | truncate table t1; | ||
|  | insert into t1 set a=default,t=default,c=default; | ||
|  | insert into t1 set a=default,t=default,c=default,i=default; | ||
|  | insert into t1 set a=4,t=0,c="a",i=5; | ||
|  | insert into t1 set a=5,t=0,c="a",i=null; | ||
|  | insert into t1 set a=default,t=default,c=default,i=default; | ||
|  | select a,t>0,c,i from t1; | ||
|  | a	t>0	c	i | ||
|  | 1	1	hello	NULL | ||
|  | 2	1	hello	NULL | ||
|  | 4	0	a	5 | ||
|  | 5	0	a	NULL | ||
|  | 6	1	hello	NULL | ||
|  | drop table t1; | ||
|  | create table t1 (sid char(20), id int(2) NOT NULL auto_increment, key(sid, id)); | ||
|  | insert into t1 values ('skr',NULL),('skr',NULL),('test',NULL); | ||
|  | select * from t1; | ||
|  | sid	id | ||
|  | skr	1 | ||
|  | skr	2 | ||
|  | test	1 | ||
|  | insert into t1 values ('rts',NULL),('rts',NULL),('test',NULL); | ||
|  | select * from t1; | ||
|  | sid	id | ||
|  | rts	1 | ||
|  | rts	2 | ||
|  | skr	1 | ||
|  | skr	2 | ||
|  | test	1 | ||
|  | test	2 | ||
|  | drop table t1; | ||
|  | create table t1 (id int NOT NULL DEFAULT 8); | ||
|  | insert into t1 values(NULL); | ||
|  | ERROR 23000: Column 'id' cannot be null | ||
|  | insert into t1 values (1), (NULL), (2); | ||
|  | Warnings: | ||
|  | Warning	1048	Column 'id' cannot be null | ||
|  | select * from t1; | ||
|  | id | ||
|  | 1 | ||
|  | 0 | ||
|  | 2 | ||
|  | drop table t1; | ||
|  | create table t1 (email varchar(50)); | ||
|  | insert into t1 values ('sasha@mysql.com'),('monty@mysql.com'),('foo@hotmail.com'),('foo@aol.com'),('bar@aol.com'); | ||
|  | create table t2(id int not null auto_increment primary key, t2 varchar(50), unique(t2)); | ||
|  | insert delayed into t2 (t2) select distinct substring(email, locate('@', email)+1) from t1; | ||
|  | select * from t2; | ||
|  | id	t2 | ||
|  | 1	mysql.com | ||
|  | 2	hotmail.com | ||
|  | 3	aol.com | ||
|  | drop table t1,t2; | ||
|  | drop database if exists mysqltest; | ||
|  | create database mysqltest; | ||
|  | use mysqltest; | ||
|  | create table t1 (c int); | ||
|  | insert into mysqltest.t1 set mysqltest.t1.c = '1'; | ||
|  | drop database mysqltest; | ||
|  | use test; | ||
|  | create table t1(number int auto_increment primary key, original_value varchar(50), f_double double, f_float float, f_double_7_2 double(7,2), f_float_4_3 float (4,3), f_double_u double unsigned, f_float_u float unsigned, f_double_15_1_u double(15,1) unsigned, f_float_3_1_u float (3,1) unsigned); | ||
|  | set @value= "aa"; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'f_double' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_7_2' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_4_3' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	1 | ||
|  | original_value	aa | ||
|  | f_double	0 | ||
|  | f_float	0 | ||
|  | f_double_7_2	0.00 | ||
|  | f_float_4_3	0.000 | ||
|  | f_double_u	0 | ||
|  | f_float_u	0 | ||
|  | f_double_15_1_u	0.0 | ||
|  | f_float_3_1_u	0.0 | ||
|  | set @value= "1aa"; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'f_double' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_7_2' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_4_3' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	2 | ||
|  | original_value	1aa | ||
|  | f_double	1 | ||
|  | f_float	1 | ||
|  | f_double_7_2	1.00 | ||
|  | f_float_4_3	1.000 | ||
|  | f_double_u	1 | ||
|  | f_float_u	1 | ||
|  | f_double_15_1_u	1.0 | ||
|  | f_float_3_1_u	1.0 | ||
|  | set @value= "aa1"; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'f_double' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_7_2' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_4_3' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1265	Data truncated for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	3 | ||
|  | original_value	aa1 | ||
|  | f_double	0 | ||
|  | f_float	0 | ||
|  | f_double_7_2	0.00 | ||
|  | f_float_4_3	0.000 | ||
|  | f_double_u	0 | ||
|  | f_float_u	0 | ||
|  | f_double_15_1_u	0.0 | ||
|  | f_float_3_1_u	0.0 | ||
|  | set @value= "1e+1111111111a"; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1264	Out of range value for column 'f_double' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_7_2' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_7_2' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_4_3' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_4_3' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	4 | ||
|  | original_value	1e+1111111111a | ||
|  | f_double	1.79769313486232e+308 | ||
|  | f_float	3.40282e+38 | ||
|  | f_double_7_2	99999.99 | ||
|  | f_float_4_3	9.999 | ||
|  | f_double_u	1.79769313486232e+308 | ||
|  | f_float_u	3.40282e+38 | ||
|  | f_double_15_1_u	99999999999999.9 | ||
|  | f_float_3_1_u	99.9 | ||
|  | set @value= "-1e+1111111111a"; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1264	Out of range value for column 'f_double' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_7_2' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_7_2' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_4_3' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_4_3' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	5 | ||
|  | original_value	-1e+1111111111a | ||
|  | f_double	-1.79769313486232e+308 | ||
|  | f_float	-3.40282e+38 | ||
|  | f_double_7_2	-99999.99 | ||
|  | f_float_4_3	-9.999 | ||
|  | f_double_u	0 | ||
|  | f_float_u	0 | ||
|  | f_double_15_1_u	0.0 | ||
|  | f_float_3_1_u	0.0 | ||
|  | set @value= 1e+1111111111; | ||
|  | ERROR 22007: Illegal double '1e+1111111111' value found during parsing | ||
|  | set @value= -1e+1111111111; | ||
|  | ERROR 22007: Illegal double '1e+1111111111' value found during parsing | ||
|  | set @value= 1e+111; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1264	Out of range value for column 'f_float' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_7_2' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_4_3' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	6 | ||
|  | original_value	1e+111 | ||
|  | f_double	1e+111 | ||
|  | f_float	3.40282e+38 | ||
|  | f_double_7_2	99999.99 | ||
|  | f_float_4_3	9.999 | ||
|  | f_double_u	1e+111 | ||
|  | f_float_u	3.40282e+38 | ||
|  | f_double_15_1_u	99999999999999.9 | ||
|  | f_float_3_1_u	99.9 | ||
|  | set @value= -1e+111; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1264	Out of range value for column 'f_float' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_7_2' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_4_3' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	7 | ||
|  | original_value	-1e+111 | ||
|  | f_double	-1e+111 | ||
|  | f_float	-3.40282e+38 | ||
|  | f_double_7_2	-99999.99 | ||
|  | f_float_4_3	-9.999 | ||
|  | f_double_u	0 | ||
|  | f_float_u	0 | ||
|  | f_double_15_1_u	0.0 | ||
|  | f_float_3_1_u	0.0 | ||
|  | set @value= 1; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	8 | ||
|  | original_value	1 | ||
|  | f_double	1 | ||
|  | f_float	1 | ||
|  | f_double_7_2	1.00 | ||
|  | f_float_4_3	1.000 | ||
|  | f_double_u	1 | ||
|  | f_float_u	1 | ||
|  | f_double_15_1_u	1.0 | ||
|  | f_float_3_1_u	1.0 | ||
|  | set @value= -1; | ||
|  | insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); | ||
|  | Warnings: | ||
|  | Warning	1264	Out of range value for column 'f_double_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_double_15_1_u' at row 1 | ||
|  | Warning	1264	Out of range value for column 'f_float_3_1_u' at row 1 | ||
|  | select * from t1 where number =last_insert_id(); | ||
|  | number	9 | ||
|  | original_value	-1 | ||
|  | f_double	-1 | ||
|  | f_float	-1 | ||
|  | f_double_7_2	-1.00 | ||
|  | f_float_4_3	-1.000 | ||
|  | f_double_u	0 | ||
|  | f_float_u	0 | ||
|  | f_double_15_1_u	0.0 | ||
|  | f_float_3_1_u	0.0 | ||
|  | drop table t1; | ||
|  | create table t1(id1 int not null auto_increment primary key, t char(12)); | ||
|  | create table t2(id2 int not null, t char(12)); | ||
|  | create table t3(id3 int not null, t char(12), index(id3)); | ||
|  | select count(*) from t2; | ||
|  | count(*) | ||
|  | 500 | ||
|  | insert into  t2 select t1.* from t1, t2 t, t3 where  t1.id1 = t.id2 and t.id2 = t3.id3; | ||
|  | select count(*) from t2; | ||
|  | count(*) | ||
|  | 25500 | ||
|  | drop table t1,t2,t3; | ||
|  | create table t1 (a int, b int); | ||
|  | insert into t1 (a,b) values (a,b); | ||
|  | insert into t1 SET a=1, b=a+1; | ||
|  | insert into t1 (a,b) select 1,2; | ||
|  | INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a); | ||
|  | prepare stmt1 from ' replace into t1 (a,a) select 100, ''hundred'' '; | ||
|  | execute stmt1; | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | insert into t1 (a,b,b) values (1,1,1); | ||
|  | ERROR 42000: Column 'b' specified twice | ||
|  | insert into t1 (a,a) values (1,1,1); | ||
|  | ERROR 21S01: Column count doesn't match value count at row 1 | ||
|  | insert into t1 (a,a) values (1,1); | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | insert into t1 SET a=1,b=2,a=1; | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | insert into t1 (b,b) select 1,2; | ||
|  | ERROR 42000: Column 'b' specified twice | ||
|  | INSERT INTO t1 (b,b) SELECT 0,0 ON DUPLICATE KEY UPDATE a = a + VALUES (a); | ||
|  | ERROR 42000: Column 'b' specified twice | ||
|  | drop table t1; | ||
|  | create table t1 (id int primary key, data int); | ||
|  | insert into t1 values (1, 1), (2, 2), (3, 3); | ||
|  | select row_count(); | ||
|  | row_count() | ||
|  | 3 | ||
|  | insert ignore into t1 values (1, 1); | ||
|  | select row_count(); | ||
|  | row_count() | ||
|  | 0 | ||
|  | replace into t1 values (1, 11); | ||
|  | select row_count(); | ||
|  | row_count() | ||
|  | 2 | ||
|  | replace into t1 values (4, 4); | ||
|  | select row_count(); | ||
|  | row_count() | ||
|  | 1 | ||
|  | insert into t1 values (2, 2) on duplicate key update data= data + 10; | ||
|  | select row_count(); | ||
|  | row_count() | ||
|  | 2 | ||
|  | insert into t1 values (5, 5) on duplicate key update data= data + 10; | ||
|  | select row_count(); | ||
|  | row_count() | ||
|  | 1 | ||
|  | drop table t1; | ||
|  | create table t1 (f1 int unique, f2 int); | ||
|  | create table t2 (f3 int, f4 int); | ||
|  | create view v1 as select * from t1, t2 where f1= f3; | ||
|  | insert into t1 values (1,11), (2,22); | ||
|  | insert into t2 values (1,12), (2,24); | ||
|  | insert into v1 (f1) values (3) on duplicate key update f3= f3 + 10; | ||
|  | ERROR HY000: Can not modify more than one base table through a join view 'test.v1' | ||
|  | insert into v1 (f1) values (3) on duplicate key update f1= f3 + 10; | ||
|  | select * from t1; | ||
|  | f1	f2 | ||
|  | 1	11 | ||
|  | 2	22 | ||
|  | 3	NULL | ||
|  | insert into v1 (f1) values (3) on duplicate key update f1= f3 + 10; | ||
|  | select * from t1; | ||
|  | f1	f2 | ||
|  | 1	11 | ||
|  | 2	22 | ||
|  | 12	NULL | ||
|  | drop view v1; | ||
|  | drop table t1,t2; | ||
|  | create table t1 (id int primary key auto_increment, data int, unique(data)); | ||
|  | insert ignore into t1 values(NULL,100),(NULL,110),(NULL,120); | ||
|  | insert ignore into t1 values(NULL,10),(NULL,20),(NULL,110),(NULL,120),(NULL,100),(NULL,90); | ||
|  | insert ignore into t1 values(NULL,130),(NULL,140),(500,110),(550,120),(450,100),(NULL,150); | ||
|  | select * from t1 order by id; | ||
|  | id	data | ||
|  | 1	100 | ||
|  | 2	110 | ||
|  | 3	120 | ||
|  | 4	10 | ||
|  | 5	20 | ||
|  | 6	90 | ||
|  | 7	130 | ||
|  | 8	140 | ||
|  | 9	150 | ||
|  | drop table t1; | ||
|  | DROP TABLE IF EXISTS t1; | ||
|  | DROP FUNCTION IF EXISTS f1; | ||
|  | DROP FUNCTION IF EXISTS f2; | ||
|  | CREATE TABLE t1 (i INT); | ||
|  | CREATE FUNCTION f1() RETURNS INT | ||
|  | BEGIN | ||
|  | INSERT INTO t1 VALUES (1); | ||
|  | RETURN 1; | ||
|  | END | | ||
|  | CREATE FUNCTION f2() RETURNS INT | ||
|  | BEGIN | ||
|  | INSERT DELAYED INTO t1 VALUES (2); | ||
|  | RETURN 1; | ||
|  | END | | ||
|  | SELECT f1(); | ||
|  | f1() | ||
|  | 1 | ||
|  | SELECT f2(); | ||
|  | f2() | ||
|  | 1 | ||
|  | INSERT INTO t1 VALUES (3); | ||
|  | INSERT DELAYED INTO t1 VALUES (4); | ||
|  | INSERT INTO t1 VALUES (f1()); | ||
|  | ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. | ||
|  | INSERT DELAYED INTO t1 VALUES (f1()); | ||
|  | ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. | ||
|  | INSERT INTO t1 VALUES (f2()); | ||
|  | ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. | ||
|  | INSERT DELAYED INTO t1 VALUES (f2()); | ||
|  | ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. | ||
|  | CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW | ||
|  | INSERT INTO t1 VALUES (NEW.i); | ||
|  | INSERT INTO t1 VALUES (1); | ||
|  | ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. | ||
|  | INSERT DELAYED INTO t1 VALUES (1); | ||
|  | ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 1 | ||
|  | 2 | ||
|  | 3 | ||
|  | 4 | ||
|  | DROP FUNCTION f2; | ||
|  | DROP FUNCTION f1; | ||
|  | DROP TABLE t1; | ||
|  | DROP TABLE IF EXISTS t1, t2; | ||
|  | CREATE TABLE t1 (i INT); | ||
|  | CREATE TABLE t2 (i INT); | ||
|  | CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW | ||
|  | INSERT DELAYED INTO t2 VALUES (NEW.i); | ||
|  | CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW | ||
|  | INSERT DELAYED INTO t2 VALUES (NEW.i); | ||
|  | CREATE TRIGGER t1_bd BEFORE DELETE ON t1 FOR EACH ROW | ||
|  | INSERT DELAYED INTO t2 VALUES (OLD.i); | ||
|  | INSERT INTO t1 VALUES (1); | ||
|  | INSERT DELAYED INTO t1 VALUES (2); | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 1 | ||
|  | 2 | ||
|  | UPDATE t1 SET i = 3 WHERE i = 1; | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 3 | ||
|  | 2 | ||
|  | DELETE FROM t1 WHERE i = 3; | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 2 | ||
|  | SELECT * FROM t2; | ||
|  | i | ||
|  | 1 | ||
|  | 2 | ||
|  | 3 | ||
|  | 3 | ||
|  | DROP TABLE t1, t2; | ||
|  | DROP TABLE IF EXISTS t1, t2; | ||
|  | CREATE TABLE t1 (i INT); | ||
|  | CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW | ||
|  | SET @a= NEW.i; | ||
|  | SET @a= 0; | ||
|  | INSERT DELAYED INTO t1 VALUES (1); | ||
|  | SELECT @a; | ||
|  | @a | ||
|  | 1 | ||
|  | INSERT DELAYED INTO t1 VALUES (2); | ||
|  | SELECT @a; | ||
|  | @a | ||
|  | 2 | ||
|  | DROP TABLE t1; | ||
|  | CREATE TABLE t1 (i INT); | ||
|  | CREATE TABLE t2 (i INT); | ||
|  | CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW | ||
|  | INSERT INTO t2 VALUES (NEW.i); | ||
|  | CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW | ||
|  | INSERT DELAYED INTO t2 VALUES (NEW.i); | ||
|  | CREATE TRIGGER t1_ad AFTER DELETE ON t1 FOR EACH ROW | ||
|  | INSERT DELAYED INTO t2 VALUES (OLD.i); | ||
|  | INSERT DELAYED INTO t1 VALUES (1); | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 1 | ||
|  | UPDATE t1 SET i = 2 WHERE i = 1; | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 2 | ||
|  | DELETE FROM t1 WHERE i = 2; | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | SELECT * FROM t2; | ||
|  | i | ||
|  | 1 | ||
|  | 2 | ||
|  | 2 | ||
|  | DROP TABLE t1, t2; | ||
|  | CREATE TABLE t1 ( | ||
|  | a char(20) NOT NULL, | ||
|  | b char(7) DEFAULT NULL, | ||
|  | c char(4) DEFAULT NULL | ||
|  | ); | ||
|  | INSERT INTO t1(a,b,c) VALUES (9.999999e+0, 9.999999e+0, 9.999e+0); | ||
|  | INSERT INTO t1(a,b,c) VALUES (1.225e-05, 1.225e-05, 1.225e-05); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'c' at row 1 | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e-04, 1.225e-04); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e-01, 1.225e-01); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225877e-01, 1.225877e-01); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+01, 1.225e+01); | ||
|  | INSERT INTO t1(a,b,c) VALUES (1.225e+01, 1.225e+01, 1.225e+01); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+05, 1.225e+05); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+10, 1.225e+10); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+15, 1.225e+15); | ||
|  | INSERT INTO t1(a,b) VALUES (5000000e+0, 5000000e+0); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e+78, 1.25e+78); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e-94, 1.25e-94); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e+203, 1.25e+203); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e-175, 1.25e-175); | ||
|  | INSERT INTO t1(a,c) VALUES (1.225e+0, 1.225e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (1.37e+0, 1.37e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (-1.37e+0, -1.37e+0); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'c' at row 1 | ||
|  | INSERT INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'c' at row 1 | ||
|  | INSERT INTO t1(a,c) VALUES (-1.87e-2, -1.87e-2); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'c' at row 1 | ||
|  | INSERT INTO t1(a,c) VALUES (5000e+0, 5000e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (-5000e+0, -5000e+0); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'c' at row 1 | ||
|  | SELECT * FROM t1; | ||
|  | a	b	c | ||
|  | 9.999999	10	10 | ||
|  | 1.225e-05	1.2e-05	1e-0 | ||
|  | 0.0001225	0.00012	NULL | ||
|  | 0.1225	0.1225	NULL | ||
|  | 0.1225877	0.12259	NULL | ||
|  | 12.25	12.25	NULL | ||
|  | 12.25	12.25	12.2 | ||
|  | 122500	122500	NULL | ||
|  | 12250000000	1.2e+10	NULL | ||
|  | 1.225e+15	1.2e+15	NULL | ||
|  | 5000000	5000000	NULL | ||
|  | 1.25e+78	1.2e+78	NULL | ||
|  | 1.25e-94	1.2e-94	NULL | ||
|  | 1.25e+203	1e+203	NULL | ||
|  | 1.25e-175	1e-175	NULL | ||
|  | 1.225	NULL	1.23 | ||
|  | 1.37	NULL	1.37 | ||
|  | -1.37	NULL	-1.3 | ||
|  | 0.00187	NULL	0.00 | ||
|  | -0.0187	NULL	-0.0 | ||
|  | 5000	NULL	5000 | ||
|  | -5000	NULL	-500 | ||
|  | DROP TABLE t1; | ||
|  | CREATE TABLE t1 ( | ||
|  | a char(20) NOT NULL, | ||
|  | b char(7) DEFAULT NULL, | ||
|  | c char(5) | ||
|  | ); | ||
|  | INSERT INTO t1(a,b,c) VALUES (9.999999e+0, 9.999999e+0, 9.999e+0); | ||
|  | INSERT INTO t1(a,b,c) VALUES (1.225e-05, 1.225e-05, 1.225e-05); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e-04, 1.225e-04); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e-01, 1.225e-01); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225877e-01, 1.225877e-01); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+01, 1.225e+01); | ||
|  | INSERT INTO t1(a,b,c) VALUES (1.225e+01, 1.225e+01, 1.225e+01); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+05, 1.225e+05); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+10, 1.225e+10); | ||
|  | INSERT INTO t1(a,b) VALUES (1.225e+15, 1.225e+15); | ||
|  | INSERT INTO t1(a,b) VALUES (5000000e+0, 5000000e+0); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e+78, 1.25e+78); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e-94, 1.25e-94); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e+203, 1.25e+203); | ||
|  | INSERT INTO t1(a,b) VALUES (1.25e-175, 1.25e-175); | ||
|  | INSERT INTO t1(a,c) VALUES (1.225e+0, 1.225e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (1.37e+0, 1.37e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (-1.37e+0, -1.37e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); | ||
|  | INSERT INTO t1(a,c) VALUES (-1.87e-2, -1.87e-2); | ||
|  | Warnings: | ||
|  | Warning	1265	Data truncated for column 'c' at row 1 | ||
|  | INSERT INTO t1(a,c) VALUES (5000e+0, 5000e+0); | ||
|  | INSERT INTO t1(a,c) VALUES (-5000e+0, -5000e+0); | ||
|  | SELECT * FROM t1; | ||
|  | a	b	c | ||
|  | 9.999999	10	9.999 | ||
|  | 1.225e-05	1.2e-05	1e-05 | ||
|  | 0.0001225	0.00012	NULL | ||
|  | 0.1225	0.1225	NULL | ||
|  | 0.1225877	0.12259	NULL | ||
|  | 12.25	12.25	NULL | ||
|  | 12.25	12.25	12.25 | ||
|  | 122500	122500	NULL | ||
|  | 12250000000	1.2e+10	NULL | ||
|  | 1.225e+15	1.2e+15	NULL | ||
|  | 5000000	5000000	NULL | ||
|  | 1.25e+78	1.2e+78	NULL | ||
|  | 1.25e-94	1.2e-94	NULL | ||
|  | 1.25e+203	1e+203	NULL | ||
|  | 1.25e-175	1e-175	NULL | ||
|  | 1.225	NULL	1.225 | ||
|  | 1.37	NULL	1.37 | ||
|  | -1.37	NULL	-1.37 | ||
|  | 0.00187	NULL	0.002 | ||
|  | -0.0187	NULL	-0.01 | ||
|  | 5000	NULL	5000 | ||
|  | -5000	NULL	-5000 | ||
|  | DROP TABLE t1; | ||
|  | CREATE TABLE t (a CHAR(10),b INT); | ||
|  | INSERT INTO t VALUES (),(),(); | ||
|  | INSERT INTO t(a) SELECT rand() FROM t; | ||
|  | DROP TABLE t; | ||
|  | CREATE TABLE t1 (c1 INT NOT NULL); | ||
|  | INSERT INTO t1 VALUES(4188.32999999999992724042385816574096679687500), | ||
|  | ('4188.32999999999992724042385816574096679687500'), (4188); | ||
|  | SELECT * FROM t1; | ||
|  | c1 | ||
|  | 4188 | ||
|  | 4188 | ||
|  | 4188 | ||
|  | CREATE TABLE t2 (c1 BIGINT); | ||
|  | INSERT INTO t2 VALUES('15449237462.0000000000'); | ||
|  | SELECT * FROM t2; | ||
|  | c1 | ||
|  | 15449237462 | ||
|  | DROP TABLE t1, t2; | ||
|  | CREATE TABLE t1(f1 FLOAT); | ||
|  | INSERT INTO t1 VALUES (1.23); | ||
|  | CREATE TABLE t2(f1 CHAR(1)); | ||
|  | INSERT INTO t2 SELECT f1 FROM t1; | ||
|  | DROP TABLE t1, t2; | ||
|  | End of 5.0 tests. | ||
|  | # | ||
|  | # Bug#54106 assert in Protocol::end_statement, | ||
|  | #           INSERT IGNORE ... SELECT ... UNION SELECT ... | ||
|  | # | ||
|  | DROP TABLE IF EXISTS t1; | ||
|  | CREATE TABLE t1 (a INT); | ||
|  | INSERT INTO t1 (a, a) VALUES (1, 1); | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | INSERT IGNORE t1 (a, a) VALUES (1, 1); | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | INSERT IGNORE t1 (a, a) SELECT 1,1; | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | INSERT IGNORE t1 (a, a) SELECT 1,1 UNION SELECT 2,2; | ||
|  | ERROR 42000: Column 'a' specified twice | ||
|  | DROP TABLE t1; |