Хранимая процедура MySQL для выполнения SHOW CREATE TABLE?
Чтобы выполнить SHOW CREATE TABLE в хранимой процедуре, используйте SHOW CREATE TABLE. Сначала создадим таблицу:
mysql> create table DemoTable2011
-> (
-> StudentId int NOT NULL AUTO_INCREMENT,
-> StudentName varchar(20),
-> StudentAge int,
-> StudentCountryName varchar(20),
-> PRIMARY KEY(StudentId)
-> );
Query OK, 0 rows affected (0.80 sec)
Ниже приведена хранимая процедура, выполняющая SHOW CREATE TABLE:
mysql> delimiter //
mysql> create procedure test_show_create_demo(table_name varchar(100))
-> begin
-> set @query=concat("SHOW CREATE TABLE ",table_name);
-> prepare st from @query;
-> execute st;
-> end
-> //
Query OK, 0 rows affected (0.22 sec)
mysql> delimiter ;
Вызовите хранимую процедуру с помощью команды CALL:
mysql> call test_show_create_demo('DemoTable2011');
Это даст следующий результат:
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
|
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable2011 | CREATE TABLE `demotable2011` (
`StudentId` int(11) NOT NULL AUTO_INCREMENT,
`StudentName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`StudentAge` int(11) DEFAULT NULL,
`StudentCountryName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`StudentId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
Query OK, 0 rows affected, 1 warning (0.06 sec)