2

私は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)

私の最後のトライアウトトリガーはこれです:

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

TYONTEKIJAに挿入しようとすると、トリガーの値に何が含まれているかについてエラーが発生します。

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'

この種のトリガーを正しく設定する方法がわかりません。これを修正するには何を変更する必要がありますか?

4

1 に答える 1

0

old値を挿入する場合、古い値がまだないため、識別子を使用できません。多分あなたは、new.Numero

于 2012-10-03T07:14:29.647 に答える