mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
139 lines
4 KiB
Text
139 lines
4 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: Incorrect 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;
|
|
PREPARE stmt1 FROM "select _utf8 'A' collate utf8_bin = ?";
|
|
set @var='A';
|
|
EXECUTE stmt1 USING @var;
|
|
_utf8 'A' collate utf8_bin = ?
|
|
1
|
|
DEALLOCATE PREPARE stmt1;
|
|
create table t1 (id int);
|
|
prepare stmt1 from "select FOUND_ROWS()";
|
|
select SQL_CALC_FOUND_ROWS * from t1;
|
|
id
|
|
execute stmt1;
|
|
FOUND_ROWS()
|
|
0
|
|
insert into t1 values (1);
|
|
select SQL_CALC_FOUND_ROWS * from t1;
|
|
id
|
|
1
|
|
execute stmt1;
|
|
FOUND_ROWS()
|
|
1
|
|
execute stmt1;
|
|
FOUND_ROWS()
|
|
0
|
|
deallocate prepare stmt1;
|