반응형
2 개의 테이블에 삽입하는 삽입 저장 프로 시저가 있습니다. 첫 번째 테이블의 Last_Insert_ID를 사용하는 두 번째 테이블입니다. 내 sproc은 다음과 같습니다.
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `new_user_create`(
IN oFarmName varchar(45),
IN oFirstName varchar(45),
IN oAddress1 varchar(45),
IN oCity varchar(45),
IN oState varchar(45),
IN oZip varchar(45),
IN oCountry varchar(45)
)
BEGIN
insert into intelliair.individual
( FarmName, FirstName)
values ( oFarmName, oFirstName);
insert into intelliair.address
(IndividualID, Address1, City, State, Zip, Country)
Values (Last_Insert_ID(), oAddress1, oCity, oState, oZip, oCountry);
END
다음은 MySql 워크 벤치에서 쿼리를 테스트하는 방법입니다.
call new_user_create(@myFarm, @MyName, @MyAddress, @MyCity, @MyState, @MyZip, @MyCountry)
내가 얻는 오류 : "Column Address1 cannot be null"
나는 어디로 가고 있습니까? sproc에 있습니까? 아니면 내가 부르는 방식?
해결 방법
" Column Address1은 null 일 수 없음 "은 intelliair.address.Address1
필드가 null이 아닌
정의되어야 함을 나타냅니다.
그리고 저장 프로 시저에 전달하기 전에 @MyAddress
에 대한 값을 미리 정의했다고 생각하지 않습니다.
정의되지 않은 경우 NULL
로 처리되므로 오류가 발생합니다.
다음과 같이 저장 프로 시저를 호출하기 전에 값을 교차 확인하려면
select @MyAddress; -- ,@myFarm, @MyName, @MyCity, @MyState, @MyZip, @MyCountry;
업데이트 1 :
각 매개 변수에 대한 값을 직접 입력하여 저장 프로 시저를 호출 할 수 있습니다.
예 :
call new_user_create(
'my Farm value', -- @myFarm
'E B', -- @MyName
'My Address is SO', -- @MyAddress1
'My City is Coders', -- @MyCity
'CA', -- @MyState
'12345', -- @MyZip
'US' -- @MyCountry
);
참조 페이지 https://stackoverflow.com/questions/11525774
반응형
'MySql' 카테고리의 다른 글
MySQL 세션-쿼리를 종료하여 테이블 잠금 해제 (0) | 2021.02.03 |
---|---|
MySQL mysql codeigniter에서 3 개의 테이블 조인 (0) | 2021.02.03 |
MySQL 기존 mysql 트리거를 생성 한 후 수정할 수 있습니까? (0) | 2021.02.03 |
MySQL XML 및 XSD를 사용하여 채워진 데이터베이스 만들기 (0) | 2021.02.03 |
MySQL mysql의 열에서 모든 또는 특정 인쇄 불가능한 문자를 제거하십시오. (0) | 2021.02.03 |
댓글