Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để tạo bảng động?


Đối với điều này, bạn có thể sử dụng quy trình được lưu trữ. Hãy để chúng tôi tạo một bảng động với hai cột, tức là StudentId là int, trong khi StudentName là 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 ;

Ở trên, chúng tôi đã đặt StudentId làm KHÓA CHÍNH.

Gọi thủ tục được lưu trữ với sự trợ giúp của lệnh CALL -

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

Bây giờ bạn có thể kiểm tra mô tả của bảng -

mysql> desc DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+-------------+------------------+------+-----+---------+----------------+
| 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)