-
สร้างขั้นตอน
สร้างขั้นตอนการจัดเก็บที่เก็บตารางในฐานข้อมูล MySQL
สร้างฟังก์ชัน
สร้างฟังก์ชันที่ผู้ใช้กำหนด โดยเฉพาะขั้นตอนการจัดเก็บที่ส่งคืนข้อมูล
เปลี่ยนแปลงขั้นตอน
การเปลี่ยนแปลงขั้นตอนการจัดเก็บที่กำหนดไว้ล่วงหน้าที่สร้างด้วย CREATE PROCEDURE จะไม่ส่งผลต่อขั้นตอนการจัดเก็บที่เกี่ยวข้องหรือฟังก์ชันการจัดเก็บ -
ปรับเปลี่ยนฟังก์ชั่น
การเปลี่ยนแปลงขั้นตอนการจัดเก็บที่กำหนดไว้ล่วงหน้าซึ่งสร้างด้วย CREATE FUNCTION จะไม่ส่งผลต่อขั้นตอนการจัดเก็บหรือฟังก์ชันการจัดเก็บที่เกี่ยวข้อง -
ขั้นตอนการวาง
ลบขั้นตอนที่เก็บไว้อย่างน้อยหนึ่งขั้นตอนออกจากตาราง MySQL
วางฟังก์ชั่น
ลบฟังก์ชันที่เก็บไว้ตั้งแต่หนึ่งรายการขึ้นไปออกจากตาราง MySQL
แสดงขั้นตอนการสร้าง
ส่งกลับข้อความของขั้นตอนการจัดเก็บที่กำหนดไว้ล่วงหน้าซึ่งสร้างโดยใช้ CREATE PROCEDURE การประกาศนี้เป็นส่วนขยาย MySQL ของข้อกำหนด SQL:2003
แสดงฟังก์ชันสร้าง
ส่งคืนข้อความของขั้นตอนการจัดเก็บที่กำหนดไว้ล่วงหน้าซึ่งสร้างโดยใช้ CREATE FUNCTION การประกาศนี้เป็นส่วนขยาย MySQL ของข้อกำหนด SQL:2003
แสดงสถานะขั้นตอน
ส่งกลับลักษณะของขั้นตอนการจัดเก็บที่กำหนดไว้ล่วงหน้า รวมถึงชื่อ ประเภท ผู้สร้าง วันที่สร้าง และวันที่แก้ไข การประกาศนี้เป็นส่วนขยาย MySQL ของข้อกำหนด SQL:2003
แสดงสถานะการทำงาน
ส่งกลับลักษณะของฟังก์ชันที่จัดเก็บไว้ล่วงหน้า รวมถึงชื่อ ประเภท ผู้สร้าง วันที่สร้าง และวันที่เปลี่ยนแปลง การประกาศนี้เป็นส่วนขยาย MySQL ของข้อกำหนด SQL:2003
เรียก
เรียกขั้นตอนการจัดเก็บที่กำหนดไว้ล่วงหน้าที่สร้างขึ้นโดยใช้ CREATE PROCEDURE
เริ่มต้น ... สิ้นสุด
ประกอบด้วยชุดคำสั่งหลายชุดที่ดำเนินการ
ประกาศ
ใช้เพื่อระบุตัวแปรโลคัล สภาพแวดล้อม ตัวประมวลผล และพอยน์เตอร์
ชุด
ใช้เพื่อเปลี่ยนค่าของตัวแปรเซิร์ฟเวอร์ท้องถิ่นและระดับโลก
เลือก ... เข้าไป
คอลัมน์ที่ใช้จัดเก็บตัวแปรการแสดงผล
เปิด
ใช้ในการเปิดตัวชี้
ดึงข้อมูล
ใช้ตัวชี้เฉพาะเพื่อรับคอลัมน์ถัดไป
ปิด
ใช้เพื่อปิดและเปิดตัวชี้
ถ้า
คำสั่ง if-then-else-end if
กรณี...เมื่อใด
โครงสร้างของคำชี้แจงกรณี
วนซ้ำ
โครงสร้างลูปแบบง่ายสามารถออกได้โดยใช้คำสั่ง LEAVE
ออกจาก
ใช้เพื่อออกจากคำสั่ง IF, CASE, LOOP, REPEAT และ WHILE
ย้ำ
ใช้เพื่อรีสตาร์ทวงจร
ทำซ้ำ
มีการทดสอบการวนซ้ำในตอนท้าย
ในขณะที่
ลูปที่ถูกทดสอบเมื่อเริ่มต้น
การส่งคืน
ส่งกลับค่าของกระบวนงานที่เก็บไว้
MySQL 5.0 รองรับคำสั่งขั้นตอนการจัดเก็บ
1. สร้างขั้นตอนการจัดเก็บ
1.ไวยากรณ์พื้นฐาน:
สร้างขั้นตอน sp_name()
เริ่ม
-
จบ
2.ผ่านพารามิเตอร์
2. เรียกขั้นตอนการจัดเก็บ
1.ไวยากรณ์พื้นฐาน: โทร sp_name()
หมายเหตุ: ต้องเพิ่มวงเล็บหลังชื่อกระบวนงานที่เก็บไว้ แม้ว่ากระบวนงานที่เก็บไว้จะไม่มีการส่งผ่านพารามิเตอร์ก็ตาม
3. ลบขั้นตอนที่เก็บไว้
1.ไวยากรณ์พื้นฐาน:
วางขั้นตอน sp_name//
2. ข้อควรระวัง
(1) คุณไม่สามารถลบขั้นตอนการจัดเก็บอื่นในขั้นตอนการจัดเก็บเดียว คุณสามารถเรียกขั้นตอนการจัดเก็บอื่นได้เท่านั้น
4. บล็อก เงื่อนไข ลูป
1. คำจำกัดความของบล็อกที่ใช้กันทั่วไป
เริ่ม
-
จบ;
คุณยังสามารถตั้งชื่อแทนให้กับบล็อกได้ เช่น:
ป้ายกำกับ:เริ่มต้น
-
ฉลากปิดท้าย;
คุณสามารถใช้ leave label เพื่อกระโดดออกจากบล็อกและรันโค้ดหลังบล็อก
2.คำแถลงแบบมีเงื่อนไข
ถ้าเงื่อนไขแล้ว
คำแถลง
อื่น
คำแถลง
สิ้นสุดถ้า;
3. คำสั่งวนซ้ำ
(1).ขณะวนซ้ำ
[ฉลาก:] ในขณะที่การแสดงออกทำ
งบ
สิ้นสุดในขณะที่ [ฉลาก];
(2) วนซ้ำ
[ป้ายกำกับ:] วนซ้ำ
งบ
END LOOP [ฉลาก];
(3)ทำซ้ำจนกระทั่งวนซ้ำ
[ป้ายกำกับ:] ทำซ้ำ
งบ
จนกว่าการแสดงออก
สิ้นสุดการทำซ้ำ [ฉลาก];
5.คำสั่งอื่นๆ ที่ใช้กันทั่วไป
1.แสดงสถานะขั้นตอน
แสดงข้อมูลพื้นฐานของขั้นตอนการจัดเก็บทั้งหมดในฐานข้อมูล รวมถึงฐานข้อมูลที่เป็นเจ้าของ ชื่อของขั้นตอนการจัดเก็บ เวลาในการสร้าง ฯลฯ
2.show สร้างขั้นตอน sp_name
ไวยากรณ์การสร้างขั้นตอนที่เก็บไว้:
สร้างขั้นตอน Procedure_name ([พารามิเตอร์ [,...])
[ภาษา SQL]
[ [ไม่ใช่] กำหนด ]
[{มี SQL|แก้ไขข้อมูล SQL|อ่านข้อมูล SQL|ไม่มี SQL}]
[ความปลอดภัยของ SQL {DEFINER|ผู้เรียกใช้}]
[ความคิดเห็น comment_string]
ขั้นตอน_คำสั่ง
คุณสามารถใช้ SHOW PROCEDURE STATUS หรือ SHOW CREATE PROCEDURE เพื่อดูข้อมูลโพรซีเดอร์ที่เก็บไว้ นอกจากนี้ ตารางระบบ INFORMATION_SCHEMA.ROUTINES ยังมีข้อมูลบางอย่างเกี่ยวกับโพรซีเดอร์ที่เก็บไว้ ในลักษณะเดียวกัน (SHOW FUNCTION STATUS)
การสร้างฟังก์ชัน
สร้างฟังก์ชัน function_name (พารามิเตอร์ [,...])
ประเภทข้อมูลส่งคืน
[ภาษา SQL]
[ [ไม่ใช่] กำหนด ]
[ {มี SQL |. ไม่มี SQL |. แก้ไขข้อมูล SQL]
[ความปลอดภัยของ SQL {DEFINER|ผู้เรียกใช้}]
[ความคิดเห็น comment_string]
เนื้อหาคำชี้แจง
โดยพื้นฐานแล้วฟังก์ชั่นจะเหมือนกับขั้นตอนการจัดเก็บ ความแตกต่างที่สำคัญคือ:
1. การใช้ RETURNS เพื่อระบุประเภทการคืนสินค้า
2. ฟังก์ชันจะต้องส่งคืนค่าและใช้ RETURN ในเนื้อหาของคำสั่ง (หมายเหตุ: ใช้ RETURNS เพื่อระบุประเภทการส่งคืนและใช้ RETURN สำหรับค่าที่ส่งคืน)
3. พารามิเตอร์ไม่แยกความแตกต่างระหว่าง IN และ OUT ทั้งหมดเป็นประเภท IN
ตัวอย่าง:
สร้างฟังก์ชัน cust_status (in_status CHAR (1))
ส่งคืนวาร์ชาร์(20)
เริ่มประกาศ long_status VARCHAR (20);
ถ้า in_status="O" ให้ตั้งค่า long_status="เกินกำหนด";
ELSEIF in_status="U" จากนั้นตั้งค่า long_status="อัปเดต";
ELSEIF in_status="N" จากนั้นตั้งค่า long_status="new";
สิ้นสุดถ้า;
กลับ(long_status);
จบ;
เรียก:
SELECT cust_status('O');
สิ่งกระตุ้น
สร้าง [DEFINER={user|CURRENT_USER}] TRIGGER trigger_name
{ก่อน|หลัง} {อัปเดต|แทรก|ลบ}
บน table_name
สำหรับแต่ละแถว
trigger_statements
ความหมาย: การดำเนินการของคำสั่ง trigger_statements จะถูกทริกเกอร์ก่อน (ก่อน) หรือหลัง (หลัง) การดำเนินการอัปเดต แทรก และลบจะดำเนินการในตาราง table_name
ตัวอย่าง:
mysql> สร้าง TRIGGER account_balance_au
หลังจากอัปเดตใน account_balance สำหรับแต่ละแถว
เริ่ม
ประกาศ INT จำลอง;
หากใหม่ ยอดคงเหลือ<0 แล้ว
ตั้งค่าใหม่.balance=NULL;
สิ้นสุดถ้า;
จบ
ทริกเกอร์ข้างต้นหมายความว่า: หลังจากอัปเดตตาราง account_balance หากยอดคงเหลือของมูลค่าที่อัปเดตน้อยกว่า 0 ให้เปลี่ยนเป็น NULL
หมายเหตุ: หากเป็น OLD.balance หมายความว่าค่าเดิมก่อนการอัพเดต