Я пытаюсь создать процедуру, которая будет заполнять таблицу до определенного количества элементов.
На данный момент у меня есть
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, которое я заполняю.
Спасибо всем за помощь!