1

データベース スキーマ

複数のアドレスを持つ個人レコードを追加するストアド プロシージャを作成するにはどうすればよいですか?

その人のアドレスが 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

上記のコードは正常に動作します。しかし、別のストアドプロシージャを書かないと、複数のアドレスを持つ人を処理する方法がわかりません。これを行う簡単な方法はありますか?

4

2 に答える 2