我正在尝试使用随机值填充mqsql表。我为此创建了一个存储过程,但执行该操作时出现错误“列数与第1行中的值计数不匹配”。
下面是我尝试过的
存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `GenerateManagerData`()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 100 DO
INSERT INTO projectManager(id,name,email,contact_number) VALUES (i+ 'M', CAST(i AS CHAR(10)), 'e'+ CAST(i AS CHAR(10))+ '@gmail.com', 'TP' + CAST(i AS CHAR(10)));
SET i = i + 1;
END WHILE;
END
这是我创建的表
CREATE TABLE `projectmanager` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`contact_number` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email_UNIQUE` (`email`)
);
我已经给出了存储过程中的所有列。请帮助我。
答案 0 :(得分:0)
这是CAST功能的问题。使用CONCAT()解决了该问题,
CREATE DEFINER=`root`@`localhost` PROCEDURE `GenerateManagerData`()
BEGIN
DECLARE i INT DEFAULT 38;
WHILE i <= 100 DO
INSERT INTO projectManager(name,email,contact_number) VALUES (CONCAT('M', i), CONCAT('e', i, '@gmail.com'), CONCAT('TP', i));
SET i = i + 1;
END WHILE;
END