私はMYSQLをかなり新しくしており、トリガに苦労しています。私はPHPmyAdminを使って、InnoDBをストレージエンジンとして使っています。2番目のテーブル(MYSQL)の更新からテーブル値を導出する方法
私のデータベースは、プロスポーツリーグを構成するためのものです。 私はチームと部門のテーブルを持っており、その部門のチームの記録から部門の記録を計算できるようにテーブルを設定したいと考えています。ここでは、チームのテーブルを作成するための私のSQLです:
CREATE TABLE `cs340_neffj`.`teams2` (`teamID` VARCHAR(3) NOT
NULL ,`teamName` VARCHAR(20) NOT NULL , `teamWins` INT(3) NOT NULL ,
`teamLoss` INT(3) NOT NULL , `divID` INT(1) NOT NULL) ENGINE = InnoDB;
そしてここでは、各部門のテーブルです:
CREATE TABLE `cs340_neffj`.`divisions2` (`divID` INT(1) NOT NULL ,
`divName` VARCHAR(20) NOT NULL , `divLeader` VARCHAR(20) NULL ,
`divWins` INT(3) NOT NULL , `divLoss` INT(3) NOT NULL , `leagueID` INT
(1) NOT NULL) ENGINE = InnoDB;
それでは、私がやりたいことは、それぞれの時間が「teams2」内の行が更新されます特定の部門の各チームのすべての勝敗を合計し、それをdivWinsとdivLossの 'division2'の列に挿入します。 'teams2'では、divIDは 'divisions2'を参照する外部キーです。ここで私の試みはトリガーです。 『where句』に「#1054、不明な列 『divisions2.divID』
なぜデータベースがこれを見つけることができません:私は「teams2」を更新しようとすると、私はこのエラーを取得する
INSERT INTO divisions2 (divWins)
SELECT SUM(teamWins)
FROM teams2
WHERE teams2.divID = divisions2.divID
divIdはの値がないため、列?これは?
あなたはfrom節のdivisions2を見逃しています... – Prisoner
申し訳ありません。私は非常にSQLに慣れています。あなたが何を意味するかわからない。 –
ところで、私はあなたがミドルテーブルを作成するのではなく、['View'](http://www.w3schools.com/sql/sql_view.asp)を使うべきだと思います – Prisoner