Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQL

王林
Lepaskan: 2023-06-01 12:13:31
ke hadapan
1522 orang telah melayarinya

1. Fungsi tersimpan (fungsi tersuai)

  • Fungsi tersuai ialah cara untuk melanjutkan MySQL, dan penggunaannya adalah sama dengan fungsi terbina dalam.

  • Dua syarat yang diperlukan untuk menentukan fungsi: parameter dan nilai pulangan. Fungsi boleh mengembalikan nilai apa-apa jenis dan juga boleh menerima parameter jenis ini.

Mengenai badan fungsi:

  • Badan fungsi terdiri daripada pernyataan SQL yang sah.

  • Tubuh fungsi boleh menjadi pernyataan SELECT atau INSERT yang mudah.

  • Jika badan fungsi ialah struktur yang mematuhi, gunakan pernyataan BEGIN....AND untuk membalutnya.

  • Struktur komposit boleh mengandungi pengisytiharan, gelung, struktur kawalan, dsb.

Penting: Fungsi tersuai tidak boleh mempunyai nama yang sama, sama seperti mentakrifkan pembolehubah global, nama pembolehubah tidak boleh konsisten.

1.1 Tentukan fungsi tersimpan

Format sintaks:

create function 函数名(参数列表)
returns type(返回值类型)
begin
    --SQL语句
end;
Salin selepas log masuk

Keperluan: Tentukan fungsi prosedur tersimpan , Dapatkan jumlah bilangan rekod yang memenuhi syarat

Pelaksanaan:

delimiter $
create function fun(countryId int)
returns int 
begin
    # 定义一个存储总数据条数的变量
    declare cum int default 0;
    # 查询等于传递参数的全部的数据数,然后将其赋值给定义的变量
    select count(*) into cum from city where country_id = countryId;
    # 返回结果值。存储函数必须有返回值
    return cum;
end $

delimiter ;
Salin selepas log masuk

1.2 Panggil fungsi tersimpan

Format sintaks:

select 函数名(参数列表);
Salin selepas log masuk

Nota: Apabila memanggil prosedur tersimpan, kata kunci panggilan digunakan, tetapi apabila memanggil fungsi tersimpan, hanya gunakan pilih terus, sama seperti memanggil fungsi agregat biasa dalam MySQL.

select fun(1);
# 这里和存储过程一样,调用的时候需要加小括号和参数,但是在删除的时候指定函数名即可
Salin selepas log masuk

1.3 Padam fungsi tersimpan

Format sintaks

drop [if exists] function fun;
Salin selepas log masuk

2 >

Pencetus ialah objek pangkalan data yang berkaitan dengan jadual, yang bermaksud mencetuskan dan melaksanakan set SQL yang ditakrifkan dalam pencetus sebelum atau selepas
    masukkan/kemas kini/padam
  • . Ciri pencetus ini boleh membantu aplikasi memastikan integriti data, pengelogan dan pengesahan data pada bahagian pangkalan data.

    Pencetus hanya boleh digunakan apabila menambah, memadam atau mengubah suai, tetapi bukan semasa membuat pertanyaan.
  • Dalam pencetus, gunakan alias LAMA dan BARU untuk merujuk bahagian rekod yang diubah, serupa dengan pangkalan data lain. Pencetus MySQL hanya menyokong pencetusan peringkat baris dan tidak menyokong pencetusan peringkat pernyataan. Oracle menyokong pencetus peringkat baris dan peringkat pernyataan.
  • Dua pembolehubah LAMA dan BARU juga dipanggil pembolehubah rekod baris.
  • Anda boleh menggunakan dua pembolehubah ini untuk mendapatkan data dalam jadual data yang akan dikendalikan.

2.2 Cipta pencetus Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQL

Format sintaks:

rreee Keperluan: Rekod log perubahan data emp_log jadual emp melalui pencetus, yang termasuk penambahan, pengubahsuaian dan pemadaman

Pelaksanaan:

Analisis:

Pencetus hanya boleh mengendalikan satu jenis operasi data dan tidak boleh melengkapkan operasi menambah, mengubah suai dan memadam pada masa yang sama. Oleh itu, pelbagai pencetus perlu ditakrifkan pada masa ini untuk menyelesaikan tugas pengelogan ini.

Oleh kerana MySQL ialah pencetus untuk operasi peringkat baris, baharu dan lama menyimpan seluruh baris data.

Buat pencetus untuk melaksanakan sisipan:

Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQL

    Dalam mod sisipan , gunakan kata kunci baharu untuk mendapatkan data yang akan dimasukkan
  • Gunakan selepas untuk melaksanakan pencetus ini untuk merekodkan log selepas menambah jadual emp.
  • Apabila pencetus ini dilaksanakan bergantung pada dua perkara:
  • Mesti beroperasi Ia adalah jadual emp, iaitu jadual yang diisytiharkan selepas pada.
    • Operasi sisipan yang mesti dilakukan.
    Buat pencetus untuk melaksanakan kemas kini:

Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQLPada masa ini pembolehubah lama Data sebelum pengubahsuaian disimpan dalam pembolehubah baharu, dan data selepas pengubahsuaian disimpan dalam pembolehubah baharu

Buat pencetus untuk melaksanakan pemadaman:

Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQLData yang akan dipadamkan disimpan dalam pembolehubah lama pada masa ini

Ujian: Ujian mestilah jadual emp bagi operasi, supaya perkara di atas akan dicetuskan Pencetus ditentukan.

2.3 Padamkan pencetus Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQL

Struktur sintaks:

create trigger(触发器) trigger_name(触发器名称)
before/after insert/update/delete
on tab_name(表名)
[for each row](行级触发器)
begin
    trigger_stmt;(触发器的逻辑)
end;
Salin selepas log masuk
Jika nama_skema tidak dinyatakan (nama pangkalan data), lalai kepada pangkalan data semasa.

2.4 Lihat pencetus

Anda boleh melihat status, sintaks dan maklumat pencetus lain dengan melaksanakan arahan pencetus rancangan.

Struktur tatabahasa:

drop trigger [schema_name.](数据库名)trigger_name(触发器名);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menyesuaikan fungsi dan pencetus dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan