私は単純なテーブルを持っています:
CREATE TABLE `accounting`.`People` (
`ID` INT NOT NULL AUTO_INCREMENT ,
`Name` VARCHAR(45) NULL ,
`Property_number` VARCHAR(45) NULL ,
`People_at_Location` INT NULL ,
PRIMARY KEY (`ID`) );
INSERT INTO `accounting`.`People` (`Name`, `Property_number`, `People_at_Location`) VALUES ('Jim', '13', '2');
INSERT INTO `accounting`.`People` (`Name`, `Property_number`) VALUES ('Tony', '16');
INSERT INTO `accounting`.`People` (`Name`, `Property_number`) VALUES ('Alice', '9');
INSERT INTO `accounting`.`People` (`Name`, `Property_number`, `People_at_Location`) VALUES ('Martha', '13', '2');
INSERT INTO `accounting`.`People` (`Name`, `Property_number`) VALUES ('Vandy', '');
私たちのデータでは、すべての行/レコードの名前を知っています。しかし、開始時には Property_number がありませんでした。クライアントからメールが返ってきたら、Property_number を取得し、レコードを更新します。
本当に必要なのは、Property_number を調べてクエリを実行し、データベース内に同じプロパティ番号を持つ他のレコードがいくつあるかを確認し、その Property_number に追加の人物がいることがわかったときにすべてのレコードを更新するトリガーです。
たとえば (上記のサンプル データを考えると)、次のようになります。
ID Name Property_number People_at_location
1 Jim 13 2
2 Tony 16 Null
3 Alice 9 1
4 Martha 13 2
5 Vandy Null Null
そのため、Vandy から、property_number 13 にいることを示す新しい情報を取得します。更新された People_at_location カウントを反映するために、レコード 1、4、および 5 を更新します。
ID Name Property_number People_at_location
1 Jim 13 3
2 Tony 16 Null
3 Alice 9 1
4 Martha 13 3
5 Vandy 13 3
このトリガーはどのように見えますか?