我正在尝试创建一个过程,该过程将填满表格直到一定数量的元素。
目前我有
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 个字段,其中一个是 id,它是自动递增的并且是主要的,另一个是我正在填充的 profile_name。
感谢任何人的帮助!