複数のアドレスを持つ個人レコードを追加するストアド プロシージャを作成するにはどうすればよいですか?
その人のアドレスが 1 つしかない場合は簡単ですが、複数のアドレスを持つ人を追加するためのストアド プロシージャの書き方がわかりません。1 つの住所を持つ人物を追加するためのストアド プロシージャは次のとおりです。
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
上記のコードは正常に動作します。しかし、別のストアドプロシージャを書かないと、複数のアドレスを持つ人を処理する方法がわかりません。これを行う簡単な方法はありますか?