私はSQLを学び始めており、家、部屋、廊下などのテーブルがあるHousesのデータベースを作成しました。NumberOfRoomsという名前の列と、Rooms HouseNameと呼ばれる。SQL - トリガー更新エラー
部屋を家に追加するときにHouse属性 "NumberOfRooms"が増加するようにトリガーを作ろうとしています。
CREATE TRIGGER UpdateNoRooms AFTER INSERT AS
UPDATE Houses SET Houses.NumberOfRooms = SELECT COUNT(Room)
FROM Rooms
WHERE Rooms.HouseName = Houses.Name;
を、それが動作していない:
これは私がしようとしているクエリです。
これは私が取得エラーメッセージです:
ERROR 1064(42000):あなたは、あなたのSQL構文でエラーが発生しています。私はこの問題を解決する方法上の任意のアイデアライン1
で「AS UPDATE Houses SET Houses.NumberOfRooms = SELECT COUNT(Room) FROM Rooms WHERE
」の近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください?事前にありがとう
あなたは 'てはいけません:' new.HouseName' – Barmar
'前に、私は疑問を持っている。ここで、 「新しい」の由来ですか?それはSQL用語ですか? – Yash
実際には、クエリ時にこれを行うと、何百万行ものクエリに対してクエリを報告するのに時間がかかりすぎる可能性があるので、これが適切なときには十分です。引き金の中でそれをすることによって、あなたは完全に数を維持します。ただし、レコードを削除できる場合は、削除後トリガーも必要になる場合があります。 – HLGEM