FOUND เริ่มต้นเป็นเท็จภายในการเรียกใช้ฟังก์ชัน PL / pgSQL แต่ละครั้ง มันถูกกำหนดโดยแต่ละประเภทของคำสั่งต่อไปนี้:
คำสั่ง SELECT ไปที่ตั้งค่า FOUND จริงถ้ามีการกำหนดแถวเป็นเท็จถ้าไม่มีการส่งคืนแถว
คำสั่ง PERFORM ตั้ง FOUND จริงถ้ามันสร้าง (และทิ้ง) หนึ่งหรือมากกว่าหนึ่งแถวเท็จถ้าไม่มีการสร้างแถว
คำสั่ง UPDATE, INSERT และ DELETE ตั้งค่า FOUND เป็นจริงหากมีอย่างน้อยหนึ่งแถวที่ได้รับผลกระทบเท็จถ้าไม่มีแถวที่ได้รับผลกระทบ
คำสั่ง FETCH ตั้งค่า FOUND จริงถ้ามันคืนแถว, เท็จถ้าไม่มีคืนแถว
คำสั่ง MOVE ตั้งค่า FOUND จริงถ้ามันสามารถเปลี่ยนตำแหน่งเคอร์เซอร์ได้สำเร็จ
คำสั่ง FOR หรือ FOREACH ตั้งค่าการพบจริงถ้ามันวนซ้ำหนึ่งครั้งหรือมากกว่านั้นเป็นเท็จ FOUND ถูกตั้งค่าแบบนี้เมื่อลูปออก ภายในการดำเนินการของลูป FOUND ไม่ได้ถูกแก้ไขโดยคำสั่งวนรอบแม้ว่ามันอาจจะมีการเปลี่ยนแปลงโดยการดำเนินการของคำสั่งอื่น ๆ ภายในร่างกายของวง
RETURN QUERY และ RETURN QUERY EXECUTE statement ตั้งค่า FOUND true หากเคียวรีคืนค่าอย่างน้อยหนึ่งแถว, false หากไม่มีการส่งคืนแถว
คำสั่ง PL / pgSQL อื่น ๆ ไม่เปลี่ยนสถานะของ FOUND โปรดสังเกตว่าโดยเฉพาะอย่างยิ่ง EXECUTE จะเปลี่ยนเอาต์พุตของ GET DIAGNOSTICS แต่จะไม่เปลี่ยน FOUND
FOUND เป็นตัวแปรท้องถิ่นภายในแต่ละฟังก์ชั่น PL / pgSQL; การเปลี่ยนแปลงใด ๆ ที่มีผลกับฟังก์ชันปัจจุบันเท่านั้น
select into
ที่ส่งคืนไม่มีข้อมูลจะยังคงยกข้อยกเว้นใช่ไหม?