テーブルを動的に作成するMySQLクエリ?
このために、ストアドプロシージャを使用できます。 2つの列を持つテーブルを動的に作成しましょう。つまり、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をPRIMARYKEYとして設定しました。
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)
-
MySQLプロシージャで一時テーブルを作成しますか?
MySQLプロシージャで一時テーブルを作成するには、次の構文を使用します- CREATE PROCEDURE yourProcedureName() BEGIN CREATE TEMPORARY TABLE yourTemporaryTableName SELECT yourValue; END 上記の構文を実装して一時テーブルを作成し、テーブルにいくつかのレコードを挿入してみましょう。以下は、ストアドプロシージャとその中に一時テーブルを作成するためのクエリです- mysql> DELIMIT
-
MySQLで手動のAUTO_INCREMENT開始値を使用してテーブルクエリを作成しますか?
まずテーブルを作成しましょう- mysql> create table DemoTable1907 ( UserId int NOT NULL AUTO_INCREMENT, UserName varchar(20), UserAge int, UserCountryName varchar(20), PRIMARY KEY(UserId) )ENGINE=MyISAM,AUTO_INCREMENT=100;