我在使用MySql过程时遇到了一些麻烦。 我有:
DROP TABLE IF EXISTS `employees2`;
CREATE TABLE `employees2` (
`LastName` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`FirstName` varchar(10) character set utf8 collate utf8_unicode_ci NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
工作正常并且没问题。
和MySQL程序:
DROP PROCEDURE IF EXISTS gen;
DELIMITER $$
CREATE PROCEDURE gen()
BEGIN
DECLARE e1 TEXT;
DECLARE e2 TEXT;
DECLARE e3 TEXT;
SET e1 = "Davolio";
SET e2 = "Nancy";
SET e3 = "Ron , Deplin";
insert into `employees2`(`LastName`,`FirstName`) values ('Nonew','adams');
insert into `employees2`(`LastName`,`FirstName`) values (e1,e2);
insert into `employees2`(`LastName`,`FirstName`) values (e3);
END $$
DELIMITER ;
call gen();
我想从变量e3中查看表值。 “Ron”用于列LastName
,“Deplin”用于列FirstName。但我收到错误:“错误代码:1136。列数与第1行的值计数不匹配”第一个和第二个插入工作正常。如何强制第三个插件工作?
答案 0 :(得分:0)
您只需指定一个值,其中包含在上一次插入中命名的两列,因此行数不等。
请参阅这篇文章,了解如何使用MySQL分割字符串,就像有两个值条目一样: https://stackoverflow.com/a/9953163/2812842