เฮ้ ในฐานะซัพพลายเออร์ Tibase ฉันมักจะถูกถามเกี่ยวกับวิธีการลบข้อมูลจากตาราง Tibase เป็นงานทั่วไปที่ผู้ใช้ฐานข้อมูลจำนวนมากต้องทำในบางจุดไม่ว่าจะเป็นการทำความสะอาดระเบียนเก่าลบข้อมูลทดสอบหรือด้วยเหตุผลอื่น ๆ ในโพสต์บล็อกนี้ฉันจะพาคุณผ่านขั้นตอนขั้นตอนเพื่อให้คุณรู้สึกมั่นใจเมื่อคุณต้องการลบข้อมูลออกจากตาราง Tibase ของคุณ
ก่อนอื่นมาทำความเข้าใจกับไวยากรณ์พื้นฐานสำหรับการลบข้อมูลใน Tibase SQLลบคำสั่งใช้เพื่อลบแถวออกจากตาราง รูปแบบทั่วไปของลบคำสั่งเป็นเช่นนี้:
ลบออกจาก table_name โดยที่เงื่อนไข;
ที่table_nameคือชื่อของตารางที่คุณต้องการลบข้อมูล ที่ที่ไหนประโยคเป็นทางเลือก แต่มันสำคัญมากเพราะมันระบุแถวที่คุณต้องการลบ หากคุณไม่รวมไฟล์ที่ไหนประโยคแถวทั้งหมดในตารางจะถูกลบ นั่นเป็นเรื่องใหญ่ดังนั้นโปรดระวัง!
เริ่มต้นด้วยตัวอย่างง่ายๆ สมมติว่าคุณมีตารางชื่อลูกค้าและคุณต้องการลบลูกค้าด้วยเฉพาะcustomer_id- นี่คือวิธีที่คุณทำได้:
ลบออกจากลูกค้าที่ลูกค้า _id = 123;
ในตัวอย่างนี้ลบคำสั่งจะลบแถวออกจากไฟล์ลูกค้าตารางที่customer_idเท่ากับ 123 ง่ายใช่มั้ย
แต่ถ้าคุณต้องการลบหลายแถวตามเงื่อนไขบางอย่าง? สมมติว่าคุณต้องการลบลูกค้าทั้งหมดที่ไม่ได้ซื้อในปีที่แล้ว คุณสามารถใช้ความซับซ้อนมากขึ้นที่ไหนข้อเช่นนี้:
ลบจากลูกค้าที่ last_purchase_date <date_sub (current_date, ช่วงเวลา 1 ปี);
คำสั่งนี้จะลบทุกแถวออกจากไฟล์ลูกค้าตารางที่last_purchase_dateมากกว่าหนึ่งปีที่ผ่านมา
ตอนนี้เรามาพูดถึงการพิจารณาที่สำคัญบางอย่างเมื่อลบข้อมูลออกจากตาราง Tibase
ความสมบูรณ์ของข้อมูล
เมื่อคุณลบข้อมูลออกจากตารางมันอาจส่งผลกระทบต่อความสมบูรณ์ของฐานข้อมูลของคุณ ตัวอย่างเช่นหากคุณมีข้อ จำกัด ของคีย์ต่างประเทศในตารางอื่นที่อ้างอิงข้อมูลที่คุณลบคุณอาจพบปัญหา สมมติว่าคุณมีสองโต๊ะ:คำสั่งซื้อและลูกค้า- ที่คำสั่งซื้อตารางมีกุญแจต่างประเทศcustomer_idที่อ้างอิงไฟล์customer_idในลูกค้าโต๊ะ. หากคุณลบลูกค้าออกจากไฟล์ลูกค้าตารางและยังมีคำสั่งซื้อที่เกี่ยวข้องกับลูกค้ารายนั้นในคำสั่งซื้อตารางคุณจะละเมิดข้อ จำกัด ของคีย์ต่างประเทศ
ในการจัดการกับสถานการณ์นี้คุณสามารถใช้การลบแบบเรียงซ้อน ใน Tibase คุณสามารถกำหนดข้อ จำกัด ของคีย์ต่างประเทศด้วยในการลบน้ำตกตัวเลือก. นี่คือวิธีที่คุณสามารถสร้างตารางที่มีการลบแบบเรียงซ้อน:
สร้างคำสั่งซื้อตาราง (คีย์หลัก order_id int, customer_id int, วันที่ order_date, คีย์ต่างประเทศ (customer_id) อ้างอิงลูกค้า (customer_id) ในการลบน้ำตก);
ด้วยการตั้งค่านี้หากคุณลบลูกค้าออกจากไฟล์ลูกค้าตารางคำสั่งซื้อที่เกี่ยวข้องทั้งหมดในไฟล์คำสั่งซื้อตารางจะถูกลบโดยอัตโนมัติเช่นกัน
การจัดการธุรกรรม
การลบข้อมูลเป็นการดำเนินการที่สำคัญและเป็นความคิดที่ดีที่จะใช้ธุรกรรมเพื่อให้แน่ใจว่าข้อมูลสอดคล้องกัน การทำธุรกรรมเป็นลำดับของคำสั่ง SQL ที่ถือว่าเป็นหน่วยงานเดียว หากมีบางอย่างผิดปกติในระหว่างการทำธุรกรรมคุณสามารถย้อนกลับการเปลี่ยนแปลงได้
นี่คือตัวอย่างของวิธีการใช้ธุรกรรมเมื่อลบข้อมูล:
เริ่มทำธุรกรรม ลบออกจากลูกค้าที่ลูกค้า _id = 123; - คุณสามารถดำเนินการอื่น ๆ ได้ที่นี่หากจำเป็นต้องกระทำ
ในตัวอย่างนี้เริ่มธุรกรรมคำสั่งเริ่มต้นการทำธุรกรรม ที่ลบคำสั่งลบลูกค้าด้วยcustomer_idเท่ากับ 123 ถ้าทุกอย่างเป็นไปด้วยดีให้สัญญาคำสั่งจะทำให้การเปลี่ยนแปลงถาวร หากมีข้อผิดพลาดคุณสามารถใช้ไฟล์การย้อนกลับคำสั่งเพื่อยกเลิกการเปลี่ยนแปลง
ข้อควรพิจารณาด้านประสิทธิภาพ
การลบแถวจำนวนมากอาจเป็นการดำเนินการที่ใช้เวลานานโดยเฉพาะอย่างยิ่งหากตารางมีข้อมูลจำนวนมากหรือดัชนีที่ซับซ้อน เพื่อปรับปรุงประสิทธิภาพคุณสามารถพิจารณาสิ่งต่อไปนี้:
- การทำดัชนี: ตรวจสอบให้แน่ใจว่าคอลัมน์ที่ใช้ในไฟล์
ที่ไหนประโยคถูกจัดทำดัชนี สิ่งนี้สามารถเพิ่มความเร็วในการค้นหาแถวที่จะลบ - การลบชุด: แทนที่จะลบแถวทั้งหมดในครั้งเดียวคุณสามารถลบออกเป็นแบทช์ สิ่งนี้สามารถลดการโหลดบนฐานข้อมูลและป้องกันการทำธุรกรรมระยะยาว
นี่คือตัวอย่างของการลบแบทช์:
ตั้งค่า @batch_size = 1,000; ตั้งค่า @Offset = 0; ในขณะที่ (เลือกนับ (*) จากลูกค้าที่ last_purchase_date <date_sub (current_date, ช่วงเวลา 1 ปี))> 0 ลบออกจากลูกค้าที่ last_purchase_date <date_sub (current_date, ช่วงเวลา 1 ปี) จำกัด @batch_size @offset; set @offset = @offset + @batch_size; สิ้นสุดในขณะ;
ในตัวอย่างนี้เรากำลังลบแถวจากไฟล์ลูกค้าตารางในแบตช์ 1,000 แถวต่อครั้งจนกว่าจะไม่มีแถวที่ตรงกับเงื่อนไขอีกต่อไป
การสำรองและทดสอบ
ก่อนที่คุณจะลบข้อมูลใด ๆ ออกจากฐานข้อมูลการผลิตคุณควรสำรองข้อมูล ด้วยวิธีนี้หากมีสิ่งผิดปกติคุณสามารถกู้คืนฐานข้อมูลไปยังสถานะก่อนหน้า นอกจากนี้ยังเป็นการปฏิบัติที่ดีในการทดสอบลบคำแถลงเกี่ยวกับสภาพแวดล้อมการทดสอบก่อนเพื่อให้แน่ใจว่าทำงานได้ตามที่คาดไว้
ใช้เครื่องมือ Tibase
Tibase มีเครื่องมือบางอย่างที่สามารถช่วยคุณจัดการและลบข้อมูลได้ง่ายขึ้น ตัวอย่างเช่นคุณสามารถใช้คอนโซลการจัดการ Tibase เพื่อเรียกใช้คำสั่ง SQL และตรวจสอบฐานข้อมูล มีอินเทอร์เฟซที่ใช้งานง่ายซึ่งทำให้ผู้ใช้ที่ไม่ใช่ด้านเทคนิคสามารถดำเนินการฐานข้อมูลได้ง่ายขึ้น
นอกเหนือจากข้างต้นหากคุณอยู่ในอุตสาหกรรมทันตกรรมคุณอาจสนใจผลิตภัณฑ์ทันตกรรมบางอย่างเช่นฟัน 14 มม. previll ตัวโค้ง-ตัวค้ำ, และการเผชิญหน้ากับการเผชิญความประทับใจ- ผลิตภัณฑ์เหล่านี้ได้รับการออกแบบมาเพื่อตอบสนองความต้องการของผู้เชี่ยวชาญด้านทันตกรรมและสามารถเป็นส่วนเสริมที่ยอดเยี่ยมในการฝึกทันตกรรมของคุณ
นั่นคือการสรุปวิธีการลบข้อมูลออกจากตาราง Tibase ฉันหวังว่าโพสต์บล็อกนี้จะมีประโยชน์ หากคุณมีคำถามใด ๆ หรือต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับ Tibase อย่าลังเลที่จะติดต่อ เราอยู่ที่นี่เพื่อช่วยคุณในการต้องการฐานข้อมูลทั้งหมดของคุณไม่ว่าจะเป็นการลบข้อมูลการเพิ่มประสิทธิภาพประสิทธิภาพหรือสิ่งอื่นใด ติดต่อเราเพื่อเริ่มการอภิปรายการจัดซื้อและดูว่าเราสามารถทำงานร่วมกันได้อย่างไรเพื่อตอบสนองความต้องการของคุณ


การอ้างอิง
- เอกสาร Tibase
- การอ้างอิงมาตรฐาน SQL
