動態建立 MySQL 表的查詢?


為此,可以使用儲存過程。我們使用兩個列動態建立一個表,即 StudentId 為 int,StudentName 為 varchar -

mysql> DELIMITER $$
mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName
VARCHAR(200))
   -> BEGIN
   ->    SET @name = yourTableName;
   ->    SET @st = CONCAT('
   '>       CREATE TABLE IF NOT EXISTS `' , @name, '` (
   '>       `StudentId` int UNSIGNED NOT NULL AUTO_INCREMENT,
   '>       `StudentName` varchar(20) NOT NULL,
   '>    PRIMARY KEY (`StudentId`)
   '>    )
   '> ');
   -> PREPARE myStatement FROM @st;
   -> EXECUTE myStatement;
   -> DEALLOCATE PREPARE myStatement;
   -> END $$
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;

上面,我們將 StudentId 設為 PRIMARY KEY。

使用 CALL 命令呼叫儲存過程 -

mysql> call creatingDynamicTableDemo('DemoTable');
Query OK, 0 rows affected, 1 warning (0.65 sec)

現在,您可以檢查表的描述 -

mysql> desc DemoTable;

輸出

這會生成以下輸出 -

+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| StudentId   | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(20)      | NO   |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

更新於: 30-6 月-2020

2 千 + 瀏覽量

職業快速啟動

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.