Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จำเป็นต้องมี `definer' เมื่อสร้างกระบวนงานที่เก็บไว้ของ MySQL หรือไม่


ไม่ ส่วนของตัวกำหนดไม่ได้บังคับเมื่อคุณสร้างโพรซีเดอร์ที่เก็บไว้ ใช้เมื่อคุณต้องการสร้างตัวกำหนด

ตรวจสอบผู้ใช้และโฮสต์ทั้งหมดจากตาราง MySQL.user -

mysql> เลือกผู้ใช้, โฮสต์จาก mysql.user;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+--------------------------------------+| ผู้ใช้ | โฮสต์ |+-----------------------------------------------+| มานิช | % || ผู้ใช้2 | % || mysql.infoschema | % || mysql.session | % || mysql.sys | % || ราก | % || อดัม สมิธ | localhost || ผู้ใช้1 | localhost || น | localhost |+--------------------------+-----------+9 แถวในชุด (0.03 วินาที)

ที่นี่ ให้เราสร้างตัวกำหนดเป็น Adam Smith แบบสอบถามเพื่อสร้างขั้นตอนการจัดเก็บมีดังนี้ -

mysql> ตัวคั่น //mysql> CREATE DEFINER ='Adam Smith'@'localhost' ขั้นตอน Sp_Definer() -> เริ่ม -> เลือก 'สวัสดี MySQL'; -> สิ้นสุด; -> //แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.14 วินาที)mysql> ตัวคั่น;

เรียกกระบวนงานที่เก็บไว้โดยใช้คำสั่ง CALL ไวยากรณ์มีดังนี้ −

CALL yourStoredProcedureName();

เรียกขั้นตอนการจัดเก็บข้างต้น

mysql> โทร Sp_Definer();

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-------------+| สวัสดี MySQL |+-------------+| สวัสดี MySQL |+-------------+1 แถวในชุด (0.00 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.01 วินาที)