mysql学习记录(十二)--触发器_MySQL
一、理论:
1.触发器不能使用采用call的动态sql,不能直接返回数据到客户端
2.不能在触发器中使用开始或者结束事务的语句
3.触发器只能在支持事务的表中回滚
二、实践:
mysql> use test1; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> create table film_text( -> film_id int(11), -> title varchar(20), -> description varchar(180) -> ) engine = innodb charset = utf8 ; Query OK, 0 rows affected (0.05 sec) mysql> create table film( -> film_id int(11), -> title varchar(20), -> description varchar(180) -> ) engine = innodb charset = utf8 ; Query OK, 0 rows affected (0.02 sec) mysql> CREATE TABLE `tri_demo` ( -> `id` int(11) auto_increment not null primary key, -> `note` varchar(50) DEFAULT NULL -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; Query OK, 0 rows affected (0.03 sec) mysql> create trigger ins_film_bef -> before insert on film for each row begin -> insert into tri_demo(note) values ('before insert'); -> end; -> $$ Query OK, 0 rows affected (0.02 sec) mysql> create trigger ins_film_aft -> after insert on film for each row begin -> insert into film_text(title) values ('after insert'); -> end; -> $$ Query OK, 0 rows affected (0.02 sec) mysql> create trigger upd_film_bef -> before update on film for each row begin -> insert into tri_demo(note) values ('before update'); -> end; -> $$ Query OK, 0 rows affected (0.00 sec) mysql> create trigger upd_film_aft -> after update on film for each row begin -> insert into tri_demo(note) values ('after update'); -> end; -> $$ Query OK, 0 rows affected (0.02 sec) mysql> delimiter ; mysql> insert into film values ( 1,'film_name','film_description'); Query OK, 1 row affected (0.00 sec) mysql> select * from film; +---------+-----------+------------------+ | film_id | title | description | +---------+-----------+------------------+ | 1 | film_name | film_description | +---------+-----------+------------------+ mysql> select * from tri_demo; +----+---------------+ | id | note | +----+---------------+ | 1 | before insert | +----+---------------+ mysql> update film set title='film_update' where film_id = 1; Query OK, 1 row affected, 1 warning (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> select * from film; +---------+--------------------+--------------------------+ | film_id | title | description | +---------+--------------------+--------------------------+ | 1 | film_update | film_description | +---------+--------------------+--------------------------+ 1 rows in set (0.00 sec) mysql> select * from tri_demo; +----+---------------+ | id | note | +----+---------------+ | 1 | before insert | | 2 | before update | | 3 | after update | +----+---------------+ 3 rows in set (0.00 sec) mysql> show triggers \G; *************************** 1. row *************************** Trigger: ins_film_bef Event: INSERT Table: film Statement: begin insert into tri_demo(note) values ('before insert'); end Timing: BEFORE Created: NULL sql_mode: Definer: root@localhost character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci *************************** 2. row *************************** Trigger: ins_film_aft Event: INSERT Table: film Statement: begin insert into film_text(title) values ('after insert'); end Timing: AFTER Created: NULL sql_mode: Definer: root@localhost character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci *************************** 3. row *************************** Trigger: upd_film_bef Event: UPDATE Table: film Statement: begin insert into tri_demo(note) values ('before update'); end Timing: BEFORE Created: NULL sql_mode: Definer: root@localhost character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci *************************** 4. row *************************** Trigger: upd_film_aft Event: UPDATE Table: film Statement: begin insert into tri_demo(note) values ('after update'); end Timing: AFTER Created: NULL sql_mode: Definer: root@localhost character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci 4 rows in set (0.01 sec)

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara Menyembunyikan Teks Sebelum Sebarang Klik dalam PowerPoint Jika anda mahu teks muncul apabila anda mengklik di mana-mana pada slaid PowerPoint, menyediakannya adalah pantas dan mudah. Untuk menyembunyikan teks sebelum mengklik mana-mana butang dalam PowerPoint: Buka dokumen PowerPoint anda dan klik menu Sisipkan. Klik pada Slaid Baru. Pilih Kosong atau salah satu daripada pratetap lain. Masih dalam menu Sisip, klik Kotak Teks. Seret kotak teks ke slaid. Klik kotak teks dan masukkan anda

Dalam pangkalan data Oracle, anda boleh menggunakan pernyataan CREATE TRIGGER untuk menambah pencetus. Pencetus ialah objek pangkalan data yang boleh menentukan satu atau lebih peristiwa pada jadual pangkalan data dan secara automatik melakukan tindakan yang sepadan apabila peristiwa itu berlaku.

Cara menggunakan pencetus MySQL untuk melaksanakan pengarkiban data automatik Pengenalan: Dalam bidang pengurusan data moden, pengarkiban automatik dan pembersihan data adalah keperluan penting dan biasa. Apabila jumlah data meningkat, mengekalkan data sejarah yang lengkap akan menduduki sumber storan yang berlebihan dan mengurangkan prestasi pertanyaan. Pencetus MySQL menyediakan cara yang berkesan untuk mencapai keperluan ini. Artikel ini akan memperkenalkan cara menggunakan pencetus MySQL untuk mencapai pengarkiban data automatik. 1. Apakah pencetus MySQL? Pencetus MySQL ialah sejenis memori yang istimewa.

Pencetus MySQL adalah peringkat baris. Menurut piawaian SQL, pencetus boleh dibahagikan kepada dua jenis: 1. Pencetus peringkat baris, yang akan diaktifkan sekali untuk setiap baris data yang diubah suai Jika pernyataan memasukkan 100 baris data, pencetus akan dipanggil 100 kali; . Pencetus peringkat penyata Pencetus diaktifkan sekali untuk setiap penyata Penyataan yang memasukkan 100 baris data hanya akan memanggil pencetus sekali. MySQL hanya menyokong pencetus peringkat baris, bukan pencetus peringkat pernyataan yang disediakan.

Cara menulis pencetus tersuai dan prosedur tersimpan dalam MySQL menggunakan PHP Pengenalan: Semasa membangunkan aplikasi, kita selalunya perlu melakukan beberapa operasi pada peringkat pangkalan data, seperti memasukkan, mengemas kini atau memadam data. MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas, dan PHP ialah bahasa skrip sebelah pelayan yang popular. Artikel ini akan memperkenalkan cara menulis pencetus tersuai dan prosedur tersimpan dalam MySQL menggunakan PHP, dan memberikan contoh kod khusus. 1. Apakah pencetus dan pencetus prosedur tersimpan (Trigg

Cara menulis prosedur tersimpan tersuai, pencetus dan fungsi dalam MySQL menggunakan C# MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas, dan C# ialah bahasa pengaturcaraan yang berkuasa untuk tugas pembangunan yang memerlukan interaksi dengan pangkalan data Katakanlah, MySQL dan C# adalah baik pilihan. Dalam MySQL, kita boleh menggunakan C# untuk menulis prosedur tersimpan tersuai, pencetus dan fungsi untuk mencapai operasi pangkalan data yang lebih fleksibel dan berkuasa. Artikel ini akan membimbing anda menggunakan C# untuk menulis dan melaksanakan

Cara menulis pencetus dalam MySQL menggunakan PHP MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, dan PHP ialah bahasa skrip sebelah pelayan yang popular. Menggunakan PHP untuk menulis pencetus dalam MySQL boleh membantu kami merealisasikan operasi pangkalan data automatik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis pencetus MySQL dan memberikan contoh kod khusus. Sebelum memulakan, pastikan MySQL dan PHP telah dipasang dan jadual pangkalan data yang sepadan telah dibuat. 1. Cipta fail dan data PHP

Cara menulis pencetus tersuai dalam MySQL menggunakan Pencetus Python ialah ciri berkuasa dalam MySQL yang boleh menentukan beberapa operasi yang dilaksanakan secara automatik pada jadual dalam pangkalan data. Python ialah bahasa pengaturcaraan ringkas dan berkuasa yang boleh berinteraksi dengan MySQL dengan mudah. Artikel ini akan memperkenalkan cara menulis pencetus tersuai menggunakan Python dan memberikan contoh kod khusus. Pertama, kita perlu memasang dan mengimport perpustakaan PyMySQL, yang merupakan cara Python bekerja dengan pangkalan data MySQL
