0
MySql 프로 시저에 약간의 문제가 있습니다. 내가 가지고있는 것 :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에서 테이블 값으로 instert 싶습니다. "Ron"은 열 LastName
이고 "Deplin"은 FirstName 열입니다. 하지만 난 오류가 : "오류 코드 : 1136. 열 개수가 1 행에서 값 개수와 일치하지 않습니다"첫 번째 및 두 번째 삽입 잘 작동합니다. 세 번째 삽입물을 강제로 작동시키는 방법?
예 :
는 두 개의 값 항목을 가지고 같은 문자열을 분할 MySQL을 사용하는 방법에 대한이 게시물을 참조하십시오. 하지만 : SET e3 = "Ron, Deplin"; 그리고 Ron은 LastName 열이고 Deplin은 FirstName 열입니다. 삽입 쿼리에서이 e3을() 사이에 붙여 넣기 만하면됩니다. – marooned확인. 'employees2' ('LastName','FirstName') 값에 삽입하십시오 (SUBSTRING_INDEX (e3, ',', 1), SUBSTRING_INDEX (e3, ',', -1)); ' 그것은 작동하지만 그것은 내가 원하는. 내가 더 긴 가치 목록을 가질 때이 방법은 쓸모 없을 것이다. – marooned
그런 식으로 문자열을 분할해야합니까? 데이터가 많을수록 별도의 필드 나 구조화 된 데이터를 사용해야합니다 ... –