如何编写存储过程来添加具有多个地址的人员记录?
如果该人只有一个地址,这很容易,但我不确定如何编写存储过程来添加具有多个地址的人。这是添加具有一个地址的人员的存储过程:
DELIMITER $$
CREATE PROCEDURE `log`.`spAddPerson` (
IN personID INT,
IN personName VARCHAR(100),
IN addressLine1 VARCHAR(45),
IN addressLine2 VARCHAR(45),
IN myCity VARCHAR(45),
IN myState VARCHAR(45),
IN myCountry VARCHAR(45)
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
END;
START TRANSACTION;
INSERT INTO person VALUES(personID,personName);
-- addressid is automatically generated
INSERT INTO address(Line1, Line2,City,State,Country) VALUES
(addressLine1, addressLine2, myCity,myState, myCountry);
INSERT INTO personAddress(personID, last_insert_id());
COMMIT;
END
上面的代码工作正常。但是,如果不编写单独的存储过程,我不知道如何处理具有多个地址的人。有没有一种简单的方法可以做到这一点?