mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
115 lines
3.6 KiB
Text
115 lines
3.6 KiB
Text
drop table if exists t1,t2;
|
|
create table t1
|
|
(
|
|
a int primary key,
|
|
b char(10)
|
|
);
|
|
insert into t1 values (1,'one');
|
|
insert into t1 values (2,'two');
|
|
insert into t1 values (3,'three');
|
|
insert into t1 values (4,'four');
|
|
set @a=2;
|
|
prepare stmt1 from 'select * from t1 where a <= ?';
|
|
execute stmt1 using @a;
|
|
a b
|
|
1 one
|
|
2 two
|
|
set @a=3;
|
|
execute stmt1 using @a;
|
|
a b
|
|
1 one
|
|
2 two
|
|
3 three
|
|
deallocate prepare no_such_statement;
|
|
ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEALLOCATE PREPARE
|
|
execute stmt1;
|
|
ERROR HY000: Wrong arguments to EXECUTE
|
|
prepare stmt2 from 'prepare nested_stmt from "select 1"';
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '"select 1"' at line 1
|
|
prepare stmt2 from 'execute stmt1';
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'stmt1' at line 1
|
|
prepare stmt2 from 'deallocate prepare z';
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'z' at line 1
|
|
prepare stmt3 from 'insert into t1 values (?,?)';
|
|
set @arg1=5, @arg2='five';
|
|
execute stmt3 using @arg1, @arg2;
|
|
select * from t1 where a>3;
|
|
a b
|
|
4 four
|
|
5 five
|
|
prepare stmt4 from 'update t1 set a=? where b=?';
|
|
set @arg1=55, @arg2='five';
|
|
execute stmt4 using @arg1, @arg2;
|
|
select * from t1 where a>3;
|
|
a b
|
|
4 four
|
|
55 five
|
|
prepare stmt4 from 'create table t2 (a int)';
|
|
execute stmt4;
|
|
prepare stmt4 from 'drop table t2';
|
|
execute stmt4;
|
|
execute stmt4;
|
|
ERROR 42S02: Unknown table 't2'
|
|
prepare stmt5 from 'select ? + a from t1';
|
|
set @a=1;
|
|
execute stmt5 using @a;
|
|
? + a
|
|
2
|
|
3
|
|
4
|
|
5
|
|
56
|
|
execute stmt5 using @no_such_var;
|
|
? + a
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
set @nullvar=1;
|
|
set @nullvar=NULL;
|
|
execute stmt5 using @nullvar;
|
|
? + a
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
set @nullvar2=NULL;
|
|
execute stmt5 using @nullvar2;
|
|
? + a
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
prepare stmt6 from 'select 1; select2';
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; select2' at line 1
|
|
prepare stmt6 from 'insert into t1 values (5,"five"); select2';
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; select2' at line 1
|
|
explain prepare stmt6 from 'insert into t1 values (5,"five"); select2';
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from 'insert into t1 values (5,"five"); select2'' at line 1
|
|
create table t2
|
|
(
|
|
a int
|
|
);
|
|
insert into t2 values (0);
|
|
set @arg00=NULL ;
|
|
prepare stmt1 from 'select 1 FROM t2 where a=?' ;
|
|
execute stmt1 using @arg00 ;
|
|
1
|
|
prepare stmt1 from @nosuchvar;
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1
|
|
set @ivar= 1234;
|
|
prepare stmt1 from @ivar;
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '1234' at line 1
|
|
set @fvar= 123.4567;
|
|
prepare stmt1 from @fvar;
|
|
ERROR 42000: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '123.4567' at line 1
|
|
set @str1 = 'select ?';
|
|
set @str2 = convert(@str1 using ucs2);
|
|
prepare stmt1 from @str2;
|
|
execute stmt1 using @ivar;
|
|
?
|
|
1234
|
|
drop table t1,t2;
|