一定量の要素までテーブルを埋めるプロシージャを作成しようとしています。
現時点で私が持っている
CREATE PROCEDURE PopulateTable(
IN dbName tinytext,
IN tableName tinytext,
IN amount INT)
BEGIN
DECLARE current_amount INT DEFAULT 0;
SET current_amount = SELECT COUNT(*) FROM dbName,'.',tableName;
WHILE current_amount <= amount DO
set @dll=CONCAT('INSERT INTO `',dbName,'`.`',tableName,'`(',
'`',tableName,'_name`) ',
'VALUES(\'',tableName,'_',current_amount,'\')');
prepare stmt from @ddl;
execute stmt;
SET current_amount = current_amount + 1;
END WHILE;
END;
だから私がやろうとしているのは、ユーザーがプロシージャを呼び出すと、関数は現在の要素がいくつ存在するかをチェックして確認し、残りの要素を埋めることです。
私が抱えている最初の問題は、要素を数える方法がわからないため、SELECT COUNT(*) FROM dbName,'.',tableName;
機能しないことです。
私はデータベースに慣れていないので、私がやっていることは正しいのですか、それとももっと良い方法があるのですか?
また、これが役立つ場合、これを行おうとしているテーブルには2つのフィールドしかありません。そのうちの1つは自動インクリメントされてプライマリであるidで、もう1つは入力しているprofile_nameです。
助けてくれてありがとう!