ในขณะที่ทดสอบสคริปต์การย้ายข้อมูลบางส่วนด้วยสำเนาข้อมูลการผลิต (สคริปต์ทำงานได้ดีกับข้อมูลการพัฒนา) ฉันพบสถานการณ์ที่น่าสงสัย ข้อ จำกัด มีการเปลี่ยนแปลงดังนั้นฉันจึงออกคำสั่ง DROP + เพิ่ม:
ALTER TABLE A_DUP_CALLE
DROP CONSTRAINT A_DUP_CALLE_UK1;
ALTER TABLE A_DUP_CALLE
ADD CONSTRAINT A_DUP_CALLE_UK1 UNIQUE (
CONTROL_ID,
CALLE_AYTO_DUPL
)
ENABLE;
คำสั่ง DROP ทำงานได้ดี แต่ ADD ล้มเหลว ตอนนี้ฉันเข้าสู่วงจรอุบาทว์ ฉันไม่สามารถวางข้อ จำกัด ได้เนื่องจากไม่มีอยู่ (การดรอปเริ่มต้นทำงานตามที่คาดไว้):
ORA-02443: ไม่สามารถวางข้อ จำกัด - ข้อ จำกัด ที่ไม่มีอยู่
และฉันไม่สามารถสร้างได้เพราะมีชื่ออยู่แล้ว:
ORA-00955: ชื่อนี้ถูกใช้โดยวัตถุที่มีอยู่แล้ว
ฉันพิมพ์A_DUP_CALLE_UK1
ลงในช่องค้นหาของนักพัฒนา SQL และ ... มีอยู่! เจ้าของชื่อตาราง tablescape ... ทุกอย่างตรงกัน: ไม่ใช่วัตถุอื่นที่มีชื่อเดียวกันมันเป็นข้อ จำกัด ดั้งเดิมของฉัน ตารางจะปรากฏในรายละเอียดข้อ จำกัด แต่ข้อ จำกัด จะไม่ปรากฏในรายละเอียดของตาราง
คำถามของฉัน:
- คำอธิบายสำหรับสิ่งนี้คืออะไร?
- ฉันจะมั่นใจได้อย่างไรว่ามันจะไม่เกิดขึ้นเมื่อฉันทำการอัปเกรดจริงในเซิร์ฟเวอร์สด
(เซิร์ฟเวอร์คือ 10g XE ฉันไม่มีชื่อเสียงเพียงพอที่จะสร้างแท็ก)