|
Тема |
Re: ... и в допълнение [re: NDeu] |
|
Автор |
salle (един такъв) |
|
Публикувано | 14.11.05 21:48 |
|
|
Я поясни малко.
Това което казваш за Тригерите само за Firebird ли се отнася?
Според стандарта в някои случаи е допустимо да имаш updatable view декларирано с join, а в други не.
Updatable view обаче няма нищо общо с никакви тригери по дефиниция. Или сървърът го може или не.
Ето един пример:
mysql> select * from t1;
+------+------+
| id | n |
+------+------+
| 1 | a |
| 2 | b |
+------+------+
2 rows in set (0.00 sec)
mysql> select * from t2;
+------+-------+
| id | t1_id |
+------+-------+
| 99 | 1 |
| 23 | 2 |
+------+-------+
2 rows in set (0.00 sec)
mysql> create view vv as select t1.id, t1.n, t2.id as t2_id from t1, t2 where t1.id = t2.t1_id;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from vv;
+------+------+-------+
| id | n | t2_id |
+------+------+-------+
| 1 | a | 99 |
| 2 | b | 23 |
+------+------+-------+
2 rows in set (0.00 sec)
mysql> update vv set n = 'xyz' where t2_id = 23;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from vv;
+------+------+-------+
| id | n | t2_id |
+------+------+-------+
| 1 | a | 99 |
| 2 | xyz | 23 |
+------+------+-------+
2 rows in set (0.00 sec)
mysql> select * from t1;
+------+------+
| id | n |
+------+------+
| 1 | a |
| 2 | xyz |
+------+------+
2 rows in set (0.00 sec)
Обаче:
mysql> update vv set n = 'abcd', t2_id = 1234 where t2_id = 23;
ERROR 1393 (HY000): Can not modify more than one base table through a join view 'bugs.vv'
|
| |
|
|
|