2012-10-03 5 views
2

mysql에서 트리거를 설정하지 않으려 고 시도했습니다. 은 여기에 관련된 테이블입니다 :MySQL 트리거 스크립트가 작동하지 않습니다.

mysql> describe ttloki; 
+-------------+-----------+------+-----+-------------------+-----------------------------+ 
| Field  | Type  | Null | Key | Default   | Extra      | 
+-------------+-----------+------+-----+-------------------+-----------------------------+ 
| Lokinumero | int(11) | NO | PRI | NULL    | auto_increment    | 
| Ttnumero | int(11) | NO | MUL | NULL    |        | 
| Kirjausaika | timestamp | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
+-------------+-----------+------+-----+-------------------+-----------------------------+ 
3 rows in set (0.00 sec) 

mysql> describe tyontekija; 
+----------+-------------+------+-----+---------+-------+ 
| Field | Type  | Null | Key | Default | Extra | 
+----------+-------------+------+-----+---------+-------+ 
| Numero | int(11)  | NO | PRI | NULL |  | 
| Sukunimi | varchar(40) | NO |  | NULL |  | 
| Etunimi | varchar(40) | NO |  | NULL |  | 
| Osasto | int(11)  | YES | MUL | NULL |  | 
| Lahios | varchar(40) | YES |  | NULL |  | 
| Postino | varchar(5) | NO | MUL | NULL |  | 
| Puhelin | varchar(16) | YES |  | NULL |  | 
| Palkka | int(11)  | YES |  | NULL |  | 
+----------+-------------+------+-----+---------+-------+ 
8 rows in set (0.00 sec) 

내 마지막 트라이 아웃 트리거는 이것이다 : 나는 TYONTEKIJA에 삽입하려고 할 때마다 그것이 나에게 트리거 값에 무엇이든에 대한 오류를 제공

create trigger uusitt 
after insert on TYONTEKIJA 
for each row 
insert into TTLOKI(Ttnumero) values 
(old.TYONTEKIJA.Numero); 

.

mysql> insert into TYONTEKIJA(Numero,Sukunimi,Etunimi,Osasto,Lahios,Postino,Puhelin,Palkka) values 
    -> (220000, "Saarikoski", "Pekka", 5, "Umpikuja 1", "02760", "060-7358461", 3000); 
ERROR 1054 (42S22): Unknown column 'old.TYONTEKIJA.Numero' in 'field list' 

이 종류의 방아쇠를 올바르게 설치하는 방법을 모르겠다. 이 문제를 해결하려면 어떻게해야합니까?

답변

0

값을 삽입 할 때 아직 값이 없기 때문에 old 식별자를 사용할 수 없습니다. 어쩌면 당신은 new.Numero을 의미할까요?

+0

감사합니다. 이것은 내 문제를 해결했다. –

+0

당신은 오신 것을 환영합니다! –

관련 문제