SiamWebCity.com รับสร้างเว็บไซต์ครบวงจร
เลือกภาษา ภาษาอังกฤษ   
หน้าแรก
web
โปรโมทเว็บ
web
รับทำเว็บไซต์
web
สอนทำเว็บ
web
Domain 299บ.
web
ติดต่อเรา
web
 
รับทำเว็บไซต์ครบวงจร รับพัฒนาแอพพลิเคชั่น สำหรับ Facebook iPad iPhone Android รับอบรมการสร้างเว็บไซต์ โปรโมทเว็บไซต์ ดูแลเว็บไซต์ แก้ไขเว็บไซต์ : เริ่มต้นติดต่อที่เรา ที่เหลือเราเป็นผู้จัดการเพื่อท่าน : เราเป็นมากกว่าเครื่องมือที่ช่วยฝ่าวิกฤตเศรษฐกิจ
รายการ
เกี่ยวกับเรา
ทำไมต้องเลือกเรา
ผลงานที่ผ่านมา
เตรียมตัวก่อนทำเว็บ
รับดูแลเว็บไซต์
แอพ Facebook iPhone
โปรแกรมmlm สำเร็จรูป
เช่าโฮสติง
บริการหลังการขาย
เงื่อนไขการรับบริการ
ร่วมงานกับเรา
คำถามที่พบบ่อย
ติดต่อเรา

ฟรีบทความ
คู่มือการใช้งาน  คู่มือการใช้งาน
VDO สอน Dreamweaver  VDO สอน Dreamweaver
Bitcoin บิทคอยน์  Bitcoin บิทคอยน์
PHP MySQL  VDO  เบื้องต้น  PHP MySQL VDO เบื้องต้น
PHP MySQL  เกร็ดความรู้  PHP MySQL เกร็ดความรู้
jQuery  jQuery
HTML5  HTML5
ASP net   MS SQL  ASP net MS SQL
facebook app  facebook app
JSP  JSP
Oracle  Oracle
CSS  CSS
Google  Google
iphone ipad iphone itune ios  iphone ipad iphone itune ios
SEO  SEO
SQL Server  SQL Server
AJAX  AJAX
รดน้ำอัตโนมัติ  สปริงเกอร์  รดน้ำอัตโนมัติ สปริงเกอร์
คอมพิวเตอร์   อินเตอร์เน็ต  คอมพิวเตอร์ อินเตอร์เน็ต
JavaScripts  JavaScripts
cloud computing  cloud computing
xhtml  xhtml
Photoshop  Photoshop
RSS Feed  RSS Feed
wordpress  wordpress
Computer  Computer
MLM ขายตรง ขยายสายงาน  MLM ขายตรง ขยายสายงาน
NUTT's blog  NUTT's blog
ทีวีดิจิตอล DVB T2  ทีวีดิจิตอล DVB T2
Bootstrap CSS  Bootstrap CSS

รับสอน PHP, MySQL, HTML, CSS, Javascripts, FTP, Dreamweaver,PHPMyAdmin, Appserv, WMSEVER, php-Nuke , Joomla, SMF, Oscommerce, Phpbb, Paypal, Adwordsมาเรียนการสร้างเว็บกัน
บริการสอน แนะนำ Adwords , PHP, MySQL, HTML, FTP, SMF, PHPMyAdmin, Dreamweaver, Oscommerce, Photoshop, Flash...

test speed
Display Pagerank
ดูสถิติเว็บไซต์

ทริกเกอร์คืออะไร? What is trigger?



MS SQL > ทริกเกอร์คืออะไร? What is trigger?


ทริกเกอร์คืออะไร?

ทริกเกอร์เป็นโครงสร้าง PL / SQL block ซึ่งเป็นเชื้อเพลิงเมื่องบ dml เช่นแทรก, ลบ, ปรับปรุงจะดำเนินการในตารางฐานข้อมูล                 ทริกเกอร์จะถูกเรียกโดยอัตโนมัติเมื่อคำสั่ง dml ที่เกี่ยวข้องจะดำเนินการ


ไวยากรณ์สำหรับการสร้าง Trigger

 CREATE [OR REPLACE] trigger_name TRIGGER 
 {ก่อน | หลังจาก | แทน} 
 {INSERT [OR] | UPDATE [OR] | ลบ} 
 [ของ col_name] 
 ON table_name 
 [อ้างอิงเก่าเป็นใหม่เป็น o n] 
 [สำหรับแต่ละแถว] 
 WHEN (เงื่อนไข)  
 BEGIN 
   งบ SQL ---  
 END; 


  • CREATE [OR REPLACE] trigger_name TRIGGER - ประโยคนี้สร้างทริกเกอร์ที่มีชื่อที่กำหนดหรือเขียนทับไกอยู่ด้วยชื่อเดียวกัน
  • {ก่อน | หลังจาก | แทน} - ข้อนี้แสดงให้เห็นในสิ่งที่เวลาควรเรียกรับยิง คือตัวอย่างเช่น: ก่อนหรือหลังการปรับปรุงตาราง แทนการใช้ในการสร้างทริกเกอร์ในมุมมอง ก่อนและหลังการไม่สามารถใช้ในการสร้างทริกเกอร์ในมุมมอง
  • {INSERT [OR] | UPDATE [OR] | ลบ} - ข้อนี้กำหนดเหตุการณ์วิกฤติ มากกว่าหนึ่งเหตุการณ์วิกฤติสามารถใช้ร่วมกันแยกจากกันโดยหรือคำหลัก ทริกเกอร์ได้รับเชื้อเพลิงที่ทุกเหตุการณ์วิกฤติที่ระบุ
  • [ของ col_name] - ประโยคนี้ถูกนำมาใช้กับการปรับปรุงการเรียก ประโยคนี้จะใช้เมื่อคุณต้องการที่จะเรียกเหตุการณ์เฉพาะเมื่อคอลัมน์เฉพาะมีการปรับปรุง
  • CREATE [OR REPLACE] trigger_name TRIGGER - ประโยคนี้สร้างทริกเกอร์ที่มีชื่อที่กำหนดหรือเขียนทับไกอยู่ด้วยชื่อเดียวกัน
  • [เปิด table_name] - ข้อนี้จะระบุชื่อของตารางหรือมุมมองที่ทำให้มีการเชื่อมโยง
  • [อ้างอิงเก่าเป็นใหม่เป็น o n] - ประโยคนี้จะใช้ในการอ้างอิงค่าเก่าและใหม่ของข้อมูลที่มีการเปลี่ยนแปลง โดยปกติแล้วคุณอ้างอิงค่าเป็น: old.column_name หรือ: new.column_name ชื่ออ้างอิงนอกจากนี้ยังสามารถเปลี่ยนจากเก่า (หรือใหม่) จะมีชื่อที่ผู้ใช้กำหนดอื่น ๆ คุณไม่สามารถอ้างอิงค่าเก่าเมื่อแทรกระเบียนหรือค่าใหม่เมื่อมีการลบบันทึกเพราะพวกเขาไม่อยู่
  • [สำหรับแต่ละแถว] - ประโยคนี้ถูกนำมาใช้เพื่อตรวจสอบว่าการเรียกต้องยิงเมื่อแต่ละแถวได้รับผลกระทบ (เช่น Trigger ระดับแถว) หรือเพียงแค่ครั้งเดียวเมื่อคำสั่ง SQL ทั้งหมดจะถูกดำเนินการ (Trigger ระดับ iestatement)
  • WHEN (เงื่อนไข) - ประโยคนี้จะใช้ได้เฉพาะสำหรับระดับแถวเรียก ทำให้มีการยิงเพียงสำหรับแถวที่ตรงตามเงื่อนไขที่ระบุไว้

ตัวอย่างเช่น: ราคาของผลิตภัณฑ์เปลี่ยนแปลงอย่างต่อเนื่อง มันเป็นสิ่งสำคัญที่จะรักษาประวัติศาสตร์ของราคาของผลิตภัณฑ์

เราสามารถสร้างทริกเกอร์เพื่อปรับปรุงตาราง 'product_price_history' เมื่อราคาของสินค้าที่มีการปรับปรุงใน 'ผลิตภัณฑ์' ตาราง

1) สร้าง 'ผลิตภัณฑ์' ตารางและตาราง 'product_price_history'

สร้าง product_price_history ตาราง 
(จำนวน product_id (5), 
product_name varchar2 (32), 
supplier_name varchar2 (32), 
จำนวน unit_price (7,2)); 

สร้างผลิตภัณฑ์ตาราง 
(จำนวน product_id (5), 
product_name varchar2 (32), 
supplier_name varchar2 (32), 
จำนวน unit_price (7,2)); 

2) สร้าง price_history_trigger และรันมัน

สร้างหรือเปลี่ยน price_history_trigger TRIGGER 
ก่อนที่จะปรับปรุงของ unit_price 
เกี่ยวกับสินค้า 
สำหรับแต่ละแถว 
BEGIN 
INSERT INTO product_price_history 
VALUES 
(: old.product_id, 
 : old.product_name, 
 : old.supplier_name, 
 : old.unit_price); 
END; 
/ 

3) ช่วยให้ปรับปรุงราคาของผลิตภัณฑ์

การปรับปรุงผลิตภัณฑ์ unit_price SET = 800 WHERE PRODUCT_ID = 100

เมื่อแบบสอบถามแบบใช้ปรับปรุงดังกล่าวข้างต้นจะถูกดำเนินการเรียกไฟและการปรับปรุง 'product_price_history' ตาราง

4)ถ้าย้อนกลับคุณทำธุรกรรมก่อน committing ไปยังฐานข้อมูลข้อมูลที่ใส่ลงไปในตารางจะรีดยังกลับ

ประเภทของ PL / SQL ทริกเกอร์

มีสองประเภทของทริกเกอร์บนพื้นฐานของระดับที่มันจะถูกเรียกเป็น
1) เรียกระดับแถว - เหตุการณ์จะถูกเรียกแถว upated แต่ละแทรกหรือลบ 
2) เรียกระดับคำชี้แจง - เหตุการณ์จะถูกเรียกสำหรับคำสั่ง SQL แต่ละดำเนินการ 

PL / SQL ลำดับชั้นการดำเนินการประมูล

ลำดับชั้นต่อไปเป็นไปตามเมื่อเรียกเป็นเชื้อเพลิง
1) ก่อนเรียกคำสั่งยิงคนแรก
2) ต่อไปก่อนที่ไฟไหม้แถวเรียกระดับหนึ่งสำหรับแต่ละแถวได้รับผลกระทบ 
3) แล้วเรียกหลังระดับแถวยิงครั้งเดียวสำหรับแถวได้รับผลกระทบ เหตุการณ์นี้จะสลับกันไปมาระหว่างก่อนและหลังระดับแถวเรียก
4) ในที่สุดคำสั่งเรียกหลังจากที่ระดับไฟ

ตัวอย่างเช่น: Let 's สร้าง' product_check 'ตารางซึ่งเราสามารถใช้ในการเก็บข้อความเมื่อทริกเกอร์ถูกยิง

สร้างผลิตภัณฑ์ตาราง
(ข้อความ varchar2 (50), 
 จำนวน Current_Date (32)
);

ลองสร้างคำสั่งก่อนและหลังและระดับแถวเรียกสำหรับตารางผลิตภัณฑ์

1) ก่อนที่จะปรับปรุงระดับคำชี้แจง: ทริกเกอร์นี้จะแทรกบันทึกลงใน 'product_check' ตารางก่อนที่คำสั่ง UPDATE SQL จะถูกดำเนินการในระดับคำสั่ง

สร้างหรือเปลี่ยน Before_Update_Stat_product TRIGGER 
ก่อน 
ปรับปรุงผลิตภัณฑ์ 
เริ่ม 
INSERT INTO product_check 
ค่า ('ก่อนปรับปรุงระดับคำสั่ง', sysdate); 
END; 
/ 

2) ก่อนที่จะปรับปรุงระดับแถว: ทริกเกอร์นี้จะแทรกบันทึกลงใน 'product_check' ตารางก่อนที่แต่ละแถวมีการปรับปรุง

 สร้างหรือเปลี่ยน Before_Upddate_Row_product TRIGGER 
 ก่อน 
 ปรับปรุงผลิตภัณฑ์ 
 สำหรับแต่ละแถว 
 BEGIN 
 INSERT INTO product_check 
 ค่า ('ก่อนระดับแถว update', sysdate); 
 END; 
 / 

3) หลังจากการปรับปรุงระดับคำชี้แจง: ทริกเกอร์นี้จะแทรกบันทึกลงใน 'product_check' ตารางหลังจากคำสั่ง UPDATE SQL จะถูกดำเนินการในระดับคำสั่ง

 สร้างหรือเปลี่ยน After_Update_Stat_product TRIGGER 
 หลัง 
 ปรับปรุงผลิตภัณฑ์ 
 BEGIN 
 INSERT INTO product_check 
 ค่า ('หลังจากการปรับปรุงระดับคำสั่ง,', sysdate); 
 end; 
 / 

4) หลังจากการอัพเดทระดับแถว: ทริกเกอร์นี้จะแทรกบันทึกลงใน 'product_check' ตารางหลังจากแต่ละแถวมีการปรับปรุง

 สร้างหรือเปลี่ยน After_Update_Row_product TRIGGER 
 หลัง  
 แทรกบนผลิตภัณฑ์ 
 สำหรับแต่ละแถว 
 BEGIN 
 INSERT INTO product_check 
 ค่า ('หลังจากการปรับปรุงระดับแถว,', sysdate); 
 END; 
 / 

ตอนนี้ให้ดำเนินการปรับปรุงคำที่ใช้ในผลิตภัณฑ์ตาราง

 การปรับปรุงผลิตภัณฑ์ตลาดหลักทรัพย์ unit_price = 800  
 PRODUCT_ID WHERE ใน (100,101); 

ช่วยให้ตรวจสอบข้อมูลใน 'product_check' ตารางเพื่อดูคำสั่งที่เรียกจะยิง

 SELECT * FROM product_check; 

เอาท์พุท:

Mesage Current_Date

-------------------------------------------------- ----------

ก่อนที่จะปรับปรุงระดับคำสั่ง, 26-Nov-2008
ก่อนที่ระดับการปรับปรุงแถว, 26-Nov-2008
หลังจากที่ระดับการปรับปรุงแถว 26-Nov-2008
ก่อนที่ระดับการปรับปรุงแถว 26-Nov-2008
หลังจากที่ระดับการปรับปรุงแถว, 26-Nov-2008
หลังจากการปรับปรุงระดับคำสั่ง, 26-Nov-2008

ผลข้างต้นแสดงให้เห็นก่อนที่จะปรับปรุง 'และ' หลังจากการปรับปรุงของเหตุการณ์ระดับแถวได้เกิดขึ้นเป็นครั้งที่สองตั้งแต่สองระเบียนได้รับการปรับปรุง   แต่ก่อนที่จะปรับปรุง 'และ' หลังจากการปรับปรุงของเหตุการณ์ระดับคำสั่งถูกไล่ออกเพียงครั้งเดียวต่อคำสั่ง SQL

กฎระเบียบดังกล่าวใช้เหมือนกันสำหรับการแทรกและลบงบ

วิธีการทราบข้อมูลเกี่ยวกับทริกเกอร์

เราสามารถใช้ 'USER_TRIGGERS' ดูพจนานุกรมข้อมูลเพื่อให้ได้ข้อมูลเกี่ยวกับการเรียกใด ๆ

คำสั่งด้านล่างแสดงให้เห็นถึงโครงสร้างของ 'USER_TRIGGERS มุมมอง

 DESC USER_TRIGGERS; 

ชื่อ ; ประเภท

-------------------------------------------------- ------

TRIGGER_NAME VARCHAR2 (30)
TRIGGER_TYPE VARCHAR2 (16)
TRIGGER_EVENT VARCHAR2 (75)
TABLE_OWNER VARCHAR2 (30)
BASE_OBJECT_TYPE VARCHAR2 (16)
TABLE_NAME VARCHAR2 (30)
COLUMN_NAME VARCHAR2 (4000)
REFERENCING_NAMES VARCHAR2 (128)
WHEN_CLAUSE VARCHAR2 (4000)
สถานภาพ ; VARCHAR2 (8)
รายละเอียด VARCHAR2 (4000)
ACTION_TYPE VARCHAR2 (11)
ยาว TRIGGER_BODY

มุมมองนี้เก็บข้อมูลเกี่ยวกับส่วนหัวและลำตัวของทริกเกอร์

SELECT * FROM WHERE user_triggers trigger_name = 'Before_Update_Stat_product'; 

แบบสอบถาม sql ข้างต้นให้หัวและร่างกายของ 'Before_Update_Stat_product' เรียก

คุณสามารถวางไกใช้คำสั่งต่อไป

DROP trigger_name TRIGGER;

Cascading ไซคลิกในการเรียก

นี่คือสถานการณ์ที่ไม่พึงประสงค์ที่มากกว่าหนึ่งเรียกเข้าไปในวง จำกัด ขณะที่การสร้างทริกเกอร์ที่เราควรตรวจสอบให้แน่ใจ situtation ดังกล่าวไม่ได้อยู่

ตัวอย่างด้านล่างแสดงให้เห็นว่า Trigger ที่สามารถใส่ลงในวงจรซ้อน
ลองพิจารณาว่าเรามีสองตาราง 'abc' และ 'xyz' สองเรียกถูกสร้างขึ้น
1) เรียก INSERT, triggerA ในประเด็นตาราง 'abc' UPDATE บนโต๊ะ 'xyz'
2) เรียก UPDATE, triggerB ในประเด็นตาราง 'xyz' INSERT บนโต๊ะ 'abc'

ในสถานการณ์ดังกล่าวเมื่อมีแถวแทรกในตาราง 'abc', triggerA ไฟและจะปรับปรุงตาราง 'xyz' 
เมื่อตาราง 'xyz' มีการปรับปรุงไฟ triggerB และจะแทรกแถวในตาราง 'abc'
นี้สถานการณ์วงจรอย่างต่อเนื่องและจะเข้าสู่ห่วงอนันต์ซึ่งจะผิดพลาดฐานข้อมูล



Short URL click! Facebook Share
<< Back : เข้าชม 13,469 ครั้ง : ขึ้นไปด้านบน
รับโพสเว็บ รับจ้างโพสเว็บบอร์ด รับโพสเว็บไซด์ webboard Seeding รับจ้างโพสต์ โปรโมทเว็บไซต์ webUB.com



รับทำเว็บไซต์, ทำเว็บ, สร้างเว็บไซต์, รับทำเว็บ, รับออกแบบเว็บ, รับเขียนเว็บ, ออกแบบเว็บ, เว็บดีไซน์, รับสร้างเว็บ, เขียนเว็บไซต์, เว็บ, บริษัท ทำเว็บ, บริษัท สร้างเว็บ, บริษัท ออกแบบเว็บ, บริษัท เขียนเว็บ, ผลงานเว็บ, โฮสติ้ง,Design,Web,เว็บ,เว็บ โฮสติ้ง,เว็ป,โฮสติ้ง ราคาถูก,เว็บไซต์,จดโดเมน,เว็บโฮสติ้ง,Web Download,Web PHP,Flash MX,Graphic Design,Search Engine, Web, Design, Web Host,Web Hosting,Web Page,เขียนเว็บ,เขียนเว็บไซต์,จัดทำเว็บ,จัดทำเว็บไซต์,ทำเว็บ,ทำเว็บไซต์, โปรโมทเว็บ,ฟรี เว็บ,รับเขียนเว็บ,รับทำเว็บ,รับทำเว็บไซต์,รับออกแบบเว็บ,รับออกแบบเว็บไซ ต์,เว็บ สำเร็จรูป,เว็บดีไซน์,เว็ปไซต์, สร้างเว็บ,สร้างเว็บไซต์,ออกแบบ เว็บไซต์,ออกแบบเว็บ,ออกแบบเว็บไซต์,เขียนโปรแกรม,บริการเว็บโฮสติ้ง,ประชา สัมพันธ์เว็บ,รับจัดทำเว็บไซต์,รับสร้างเว็บ,เว็บโปรแกรม,เว็บสวย, บริการจัดทำเว็บไซต์,บริษัทรับจัดทำเว็บไซต์,ให้บริการจัดทำเว็บไซต์, มีประสบการณ์การจัดทำเว็บไซต์, งานบริการเว็บไซต์,ผลงานการเว็บไซต์,ผลงานเว็บไซต์,เว็บไซต์,เว็บไซต์ ปรัชญา "พอเพียง",เว็บไซต์ราคาที่ยุติธรรม,เว็บไซต์ระบบมาตรฐาน,เว็บไซต์ทุกงาน, เว็บไซต์ธุรกิจ, โปรโมทเว็บ,ประชาสัมพันธ์เว็บ,เว็บ,ออกแบบเว็บ,เขียนโปรแกรม,สร้างเว็บ,ออก แบบเว็บไซต์,ทำเว็บ,เว็บสวย,เขียนเว็บไซต์,ทำเว็บไซต์,รับทำเว็บ,รับออกแบบ เว็บ,เขียนเว็บ,รับเขียนเว็บ,รับทำเว็บไซต์,รับจัดทำเว็บไซต์,เว็บโฮสติ้ง, จัดทำเว็บ,เว็บโปรแกรม,เว็บไซต์,เว็บดีไซน์,รับออกแบบเว็บไซต์,สร้างเว็บไซ ต์,เว็บ,จดโดเมน,บริการเว็บโฮสติ้ง,จัดทำเว็บไซต์,โปรแกรมคอมพิวเตอร์

รับทำเว็บไซต์ : โปรโมทเว็บไซต์ : รับเขียนโปรแกรม : สอนสร้างเว็บ : จด Domain name 299บ. : เช่า Hosting : บริการดูแลเว็บไซต์ : รับซื้อ ขาย Rolex : Sitemap.xml
สปริงเกอร์

ข้อสอบ คลังข้อสอบ ระบบข้อสอบ โปรแกรมข้อสอบ ฟรี Exam.in.th
เว็บไซต์ในเครือข่าย: SiamWebCity.com webUB.com EXAM.in.th ข้อสอบ.ไทย ไอเดียแต่งบ้าน homeEST.com
Copyright © 2009-2019 SiamWebCity.COM. ® All rights reserved. หมายเลขทะเบียนประกอบพานิชย์อิเลคทรอนิกส์ : 0447314800321
E-mail, Google Talk : admin [at] siamwebcity.com, Skype: SiamWebCity.com
ขึ้นไปด้านบน