mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			173 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| CREATE TABLE t1 (a INT PRIMARY KEY)|
 | |
| BEGIN NOT ATOMIC
 | |
| INSERT INTO t1 VALUES (1);
 | |
| INSERT INTO t1 VALUES (2);
 | |
| INSERT INTO t1 VALUES (3);
 | |
| END|
 | |
| SELECT * FROM t1|
 | |
| a
 | |
| 1
 | |
| 2
 | |
| 3
 | |
| PREPARE stmt FROM "BEGIN NOT ATOMIC
 | |
|   INSERT INTO t1 VALUES (4);
 | |
|   INSERT INTO t1 VALUES (5);
 | |
|   INSERT INTO t1 VALUES (?);
 | |
| END";
 | |
| SET @val = 6|
 | |
| reset master|
 | |
| EXECUTE stmt USING @val|
 | |
| SELECT * FROM t1|
 | |
| a
 | |
| 1
 | |
| 2
 | |
| 3
 | |
| 4
 | |
| 5
 | |
| 6
 | |
| include/show_binlog_events.inc
 | |
| Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 | |
| master-bin.000001	#	Gtid	#	#	BEGIN GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1 VALUES (4)
 | |
| master-bin.000001	#	Query	#	#	COMMIT
 | |
| master-bin.000001	#	Gtid	#	#	BEGIN GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1 VALUES (5)
 | |
| master-bin.000001	#	Query	#	#	COMMIT
 | |
| master-bin.000001	#	Gtid	#	#	BEGIN GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; INSERT INTO t1 VALUES (6)
 | |
| master-bin.000001	#	Query	#	#	COMMIT
 | |
| DROP TABLE t1|
 | |
| CREATE DATABASE mysqltest1|
 | |
| CREATE PROCEDURE mysqltest1.sp1()
 | |
| BEGIN
 | |
| PREPARE stmt FROM "BEGIN NOT ATOMIC CREATE TABLE t1 AS SELECT DATABASE(); END";
 | |
| EXECUTE stmt;
 | |
| END|
 | |
| CALL mysqltest1.sp1()|
 | |
| SELECT * FROM mysqltest1.t1|
 | |
| DATABASE()
 | |
| mysqltest1
 | |
| USE mysqltest1|
 | |
| DROP DATABASE mysqltest1|
 | |
| BEGIN NOT ATOMIC CREATE TABLE t1(a int); END|
 | |
| ERROR 3D000: No database selected
 | |
| BEGIN NOT ATOMIC SET @a=1; CREATE TABLE test.t1(a int); END|
 | |
| USE test|
 | |
| show tables|
 | |
| Tables_in_test
 | |
| t1
 | |
| drop table t1|
 | |
| /**/ if (select count(*) from information_schema.tables
 | |
| where table_schema='test' and table_name='t1') = 0
 | |
| then
 | |
| create table t1 (a int);
 | |
| end if|
 | |
| show tables|
 | |
| Tables_in_test
 | |
| t1
 | |
| /**/ if (select count(*) from information_schema.tables
 | |
| where table_schema='test' and table_name='t1') = 0
 | |
| then
 | |
| create table t1 (a int);
 | |
| end if|
 | |
| show tables|
 | |
| Tables_in_test
 | |
| t1
 | |
| case (select table_name from information_schema.tables where table_schema='test')
 | |
| when 't1' then create table t2 (b int);
 | |
| when 't2' then create table t3 (b int);
 | |
| else signal sqlstate '42S02';
 | |
| end case|
 | |
| show tables|
 | |
| Tables_in_test
 | |
| t1
 | |
| t2
 | |
| case
 | |
| when database() = 'test' then create table t3 (test text);
 | |
| when now() < date'2001-02-03' then create table oops (machine time);
 | |
| end case|
 | |
| show tables|
 | |
| Tables_in_test
 | |
| t1
 | |
| t2
 | |
| t3
 | |
| loop
 | |
| create table t4 (a int);
 | |
| end loop|
 | |
| ERROR 42S01: Table 't4' already exists
 | |
| show tables|
 | |
| Tables_in_test
 | |
| t1
 | |
| t2
 | |
| t3
 | |
| t4
 | |
| set @a=0|
 | |
| repeat
 | |
| set @a = @a + 1;
 | |
| until @a > 5
 | |
| end repeat|
 | |
| select @a|
 | |
| @a
 | |
| 6
 | |
| /**/ while (select count(*) from information_schema.tables where table_schema='test')
 | |
| do
 | |
| select concat('drop table ', table_name) into @a
 | |
| from information_schema.tables where table_schema='test'
 | |
|      order by table_name limit 1;
 | |
| select @a as 'executing:';
 | |
| prepare dt from @a;
 | |
| execute dt;
 | |
| end while|
 | |
| executing:	drop table t1
 | |
| executing:	drop table t2
 | |
| executing:	drop table t3
 | |
| executing:	drop table t4
 | |
| create table t1 (x int)|
 | |
| create function fn(a int) returns int
 | |
| begin
 | |
| insert t1 values (a+7);
 | |
| return a+8;
 | |
| end|
 | |
| reset master|
 | |
| /**/ if fn(9) > 5 then
 | |
| select 1;
 | |
| end if|
 | |
| 1
 | |
| 1
 | |
| prepare stmt from "if fn(?) > 6 then
 | |
|  begin
 | |
|   declare a int;
 | |
|   set a=?*2;
 | |
|   insert t1 values(a+?);
 | |
|  end;
 | |
| end if"|
 | |
| set @a=1, @b=2, @c=3|
 | |
| execute stmt using @a, @b, @c|
 | |
| include/show_binlog_events.inc
 | |
| Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; SELECT `test`.`fn`(9)
 | |
| master-bin.000001	#	Gtid	#	#	GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; SELECT `test`.`fn`(1)
 | |
| master-bin.000001	#	Gtid	#	#	BEGIN GTID #-#-#
 | |
| master-bin.000001	#	Query	#	#	use `test`; insert t1 values( NAME_CONST('a',4)+3)
 | |
| master-bin.000001	#	Query	#	#	COMMIT
 | |
| drop function fn|
 | |
| drop table t1|
 | |
| set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"|
 | |
| begin not atomic select @@sql_mode; end|
 | |
| @@sql_mode
 | |
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 | |
| create table t1 (a int)|
 | |
| select a from t1 having a > 1|
 | |
| a
 | |
| begin not atomic select a from t1 having a > 1; end|
 | |
| a
 | |
| drop table t1|
 | |
| #
 | |
| # MDEV-8615: Assertion `m_cpp_buf <= begin_ptr &&
 | |
| # begin_ptr <= m_cpp_buf + m_buf_length' failed in
 | |
| # Lex_input_stream::body_utf8_start
 | |
| #
 | |
| b'|
 | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'b'' at line 1
 | 
