किसी अन्य तालिका में पंक्ति डालने के लिए एक MySQL ट्रिगर प्रोग्राम कैसे करें?



triggers lastinsertid (1)

drop table if exists comments;
create table comments
(
comment_id int unsigned not null auto_increment primary key,
user_id int unsigned not null
)
engine=innodb;

drop table if exists activities;
create table activities
(
activity_id int unsigned not null auto_increment primary key,
comment_id int unsigned not null,
user_id int unsigned not null
)
engine=innodb;

delimiter #

create trigger comments_after_ins_trig after insert on comments
for each row
begin
  insert into activities (comment_id, user_id) values (new.comment_id, new.user_id);
end#

delimiter ;

insert into comments (user_id) values (1),(2);

select * from comments;
select * from activities;

संपादित करें:

mysql> \. d:\foo.sql

Database changed
Query OK, 0 rows affected (0.10 sec)

Query OK, 0 rows affected (0.30 sec)

Query OK, 0 rows affected (0.11 sec)

Query OK, 0 rows affected (0.35 sec)

Query OK, 0 rows affected (0.07 sec)

Query OK, 2 rows affected (0.03 sec)
Records: 2  Duplicates: 0  Warnings: 0

+------------+---------+
| comment_id | user_id |
+------------+---------+
|          1 |       1 |
|          2 |       2 |
+------------+---------+
2 rows in set (0.00 sec)

+-------------+------------+---------+
| activity_id | comment_id | user_id |
+-------------+------------+---------+
|           1 |          1 |       1 |
|           2 |          2 |       2 |
+-------------+------------+---------+
2 rows in set (0.00 sec)

मैं एक टेबल पर एक MySQL ट्रिगर बनाने के लिए देख रहा हूँ। अनिवार्य रूप से, मैं एक गतिविधि स्ट्रीम बना रहा हूं और उपयोगकर्ताओं द्वारा कार्यों को लॉग इन करने की आवश्यकता है। जब कोई उपयोगकर्ता कोई टिप्पणी करता है, तो मैं उस तालिका पर डेटाबेस ट्रिगर करना चाहता हूं और:

  1. अंतिम डाली गई पंक्ति (टिप्पणी पंक्ति की आईडी) की आईडी पकड़ें।
  2. पिछली डाली गई पंक्ति से डेटा का उपयोग करके, एक ईवेंट टेबल में एक INSERT निष्पादित करें।

टिप्पणियों को हटाने के लिए मैं अनिवार्य रूप से इस ट्रिगर को दोहरा दूंगा।

मेरे पास प्रश्न थे:

  1. क्या LAST_INSERT_ID () आईडी को पकड़ने का सबसे अच्छा तरीका है?
  2. मैं अपने "INSERT गतिविधियों में" कथन में उपयोग के लिए अंतिम सम्मिलित टिप्पणी पंक्ति से डेटा को सही तरीके से कैसे संग्रहीत करूं?
  3. क्या मुझे संग्रहीत प्रक्रियाओं के साथ-साथ ट्रिगर के संयोजन का उपयोग करना चाहिए?
  4. ट्रिगर की मूल संरचना कैसी दिखती है?

धन्यवाद! यह कुछ साल हो गया है क्योंकि मैंने डीबी ट्रिगर्स, प्रक्रियाओं और कार्यों के साथ कुछ भी करने को छुआ है।





procedures