คำถามติดแท็ก sql-drop


15
Oracle: ถ้า Table มีอยู่
ฉันเขียนสคริปต์การย้ายข้อมูลบางอย่างสำหรับฐานข้อมูล Oracle และหวังว่า Oracle จะมีสิ่งที่คล้ายกับIF EXISTSโครงสร้างของ MySQL โดยเฉพาะอย่างยิ่งเมื่อใดก็ตามที่ฉันต้องการวางตารางใน MySQL ฉันทำอะไรเช่น DROP TABLE IF EXISTS `table_name`; วิธีนี้หากตารางไม่มีอยู่DROPจะไม่เกิดข้อผิดพลาดและสคริปต์สามารถดำเนินการต่อได้ Oracle มีกลไกที่คล้ายกันหรือไม่ ฉันรู้ว่าฉันสามารถใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบว่ามีตารางอยู่หรือไม่ SELECT * FROM dba_tables where table_name = 'table_name'; แต่ไวยากรณ์สำหรับการคาดเดาสิ่งนั้นพร้อมกับ a DROPคือการหลบหนีฉัน
343 sql  oracle  sql-drop 



6
บังคับให้ mysql ลดลงโดยข้ามข้อ จำกัด ของคีย์ต่างประเทศ
ฉันพยายามลบตารางทั้งหมดออกจากฐานข้อมูลยกเว้นตารางเดียวและพบข้อผิดพลาดต่อไปนี้: ไม่สามารถลบหรืออัปเดตแถวหลัก: ข้อ จำกัด ของคีย์นอกระบบล้มเหลว แน่นอนว่าฉันสามารถลองผิดลองถูกเพื่อดูว่าข้อ จำกัด สำคัญเหล่านั้นคืออะไรและในที่สุดก็ลบตารางทั้งหมด แต่ฉันอยากรู้ว่ามีวิธีที่รวดเร็วในการบังคับให้วางตารางทั้งหมดหรือไม่ (ฉันจะสามารถแทรกใหม่ได้ ไม่ต้องการลบ) Google เล็งฉันไปที่ไซต์บางแห่งที่แนะนำวิธีการต่อไปนี้: mysql> SET foreign_key_checks = 0; mysql> drop table ... mysql> SET foreign_key_checks = 1; คำตอบสั้น ๆ คือมันไม่ได้ทำเคล็ดลับจริงๆเนื่องจากฉันได้รับข้อผิดพลาดเดียวกันในขณะที่ฉันสามารถลบตารางเพิ่มเติมได้ ฉันเคยเห็นวิธี Stack Overflow ในการรับคีย์ต่างประเทศทั้งหมดที่เชื่อมโยงกับตารางบางตาราง แต่นั่นเป็นวิธีที่ใช้เวลานานเกินไปเว้นแต่ฉันจะเขียนสคริปต์ทั้งหมด (ซึ่งทำได้ในกรณีที่ไม่มีตัวเลือกอื่น) ฐานข้อมูลคือ 4.1 ดังนั้นฉันจึงใช้ไม่ได้ DROP DATABASE ไอเดีย?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.