Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

테이블을 동적으로 생성하는 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)