テーブルを動的に作成する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;