Nếu bạn thực sự chắc chắn muốn bỏ bảng mặc dù nó được tham chiếu trong các khóa ngoại, bạn có thể buộc nó như thế này:
drop table state cascade constraints;
Cú pháp này được định nghĩa trong Tham chiếu SQL Oracle .
Lưu ý rằng điều này làm giảm bất kỳ mối quan hệ khóa ngoài nào. Vì vậy, bạn sẽ cần phải tạo lại chúng sau khi bạn đã xây dựng lại bảng (và khóa chính của nó). Thông thường điều này không sao cả vì trường hợp sử dụng phổ biến nhất là chuyển vào thùng rác và tạo lại các lược đồ trong môi trường Phát triển hoặc CI.
Chúng ta có thể sử dụng cascade constraints
để duy trì các tập lệnh xây dựng của chúng tôi dễ dàng hơn. Có hai lựa chọn thay thế:
- Loại bỏ các ràng buộc khóa ngoại một cách rõ ràng trước khi loại bỏ các bảng, bằng một tập lệnh hoặc với SQL động.
- Thứ tự các câu lệnh DROPTABLE để các bảng phụ thuộc được sắp xếp trước, cùng với các khóa ngoại khó hiểu của chúng. Đủ dễ dàng cho một số ít bảng, khó khăn hơn với một lược đồ lớn.