列数与第1行中的值数不匹配

时间:2019-04-30 09:20:28

标签: mysql stored-procedures mysql-workbench

我正在尝试使用随机值填充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`)
);

我已经给出了存储过程中的所有列。请帮助我。

1 个答案:

答案 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