Artykuł Views and triggers
Views and triggers
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| news |
| news_history |
| users |
+----------------+
3 rows in set (0.01 sec)
mysql>
mysql> show columns from news;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| uid | int(11) | NO | | NULL | |
| title | varchar(255) | NO | | NULL | |
| text | text | NO | | NULL | |
+-------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql>
mysql> show columns from news_history;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| news_id | int(11) | NO | | NULL | |
| user | varchar(30) | NO | | NULL | |
| time | int(11) | NO | | NULL | |
| old_text | text | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql>
mysql> show columns from users;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| nick | varchar(30) | NO | | NULL | |
| pass | varchar(32) | NO | | NULL | |
| mail | varchar(100) | NO | | NULL | |
+-------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql>
mysql> select * from users;
+----+-------+----------------------------------+--------+
| id | nick | pass | mail |
+----+-------+----------------------------------+--------+
| 1 | userA | 76a2173be6393254e72ffa4d6df1030a | a@a.pl |
| 2 | userB | 76a2173be6393254e72ffa4d6df1030a | b@b.pl |
+----+-------+----------------------------------+--------+
2 rows in set (0.00 sec)
mysql> select * from news;
+----+-----+-------+-------+
| id | uid | title | text |
+----+-----+-------+-------+
| 1 | 1 | tytul | tresc |
+----+-----+-------+-------+
1 row in set (0.00 sec)
mysql> select * from news_history;
Empty set (0.00 sec)
mysql>
mysql> delimiter //
mysql> create trigger newsEdit before update on news
-> for each row
-> begin
-> set @nick = (select nick from users where id = new.id);
-> insert into news_history values(new.id, @nick, unix_timestamp(), old.text);
-> end;//
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql>
mysql> update news set uid=2, text='nowa tresc' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from news;
+----+-----+-------+------------+
| id | uid | title | text |
+----+-----+-------+------------+
| 1 | 2 | tytul | nowa tresc |
+----+-----+-------+------------+
1 row in set (0.00 sec)
mysql> select * from news_history;
+---------+-------+------------+----------+
| news_id | user | time | old_text |
+---------+-------+------------+----------+
| 1 | userA | 1248963464 | tresc |
+---------+-------+------------+----------+
1 row in set (0.00 sec)
mysql>
mysql> create view vNews as
-> select n.id, n.title, n.text, u.id uid, u.nick, u.mail,
->from_unixtime(h.time, '%d.%m.%Y') lastMod
-> from news n left join users u on u.id = n.uid
->left join news_history h on h.news_id = n.id;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> select * from vNews;
+----+-------+------------+-----+-------+--------+------------+
| id | title | text | uid | nick | mail | lastMod |
+----+-------+------------+-----+-------+--------+------------+
| 1 | tytul | nowa tresc | 2 | userB | b@b.pl | 30.07.2009 |
+----+-------+------------+-----+-------+--------+------------+
1 row in set (0.00 sec)
mysql>
Zobacz więcej
Komentarze
Poradnik pisany z dedykacją dla użytkowniczki Shadija, której to zniknął
czytaj całośćDźwięki biosu i prawdopodobne przyczyny AWARD 1 krótki - brak jakic
czytaj całośćConky to najpopularniejszy wysoko konfigurowalny monitor systemu znany użytkonik
czytaj całośćJeżeli chcesz aby na twojej stronie internetowaj widniał stan twojego statusu sk
czytaj całośćChciałbym przedstawić w pełni bezpieczny sposób na sprawdzenie poprawne
czytaj całość© Copyright 2011 e-pomocnik.pl