Bạn phải hoán đổi câu lệnh TRUNCATE thành câu lệnh DELETE, chậm hơn và được ghi lại nhưng đó là cách để thực hiện khi có các ràng buộc.
DELETE mytablename;
Hoặc bạn có thể tìm thấy các khóa ngoại đang tham chiếu đến bảng được đề cập và tạm thời vô hiệu hóa chúng.
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';'
from user_constraints
where R_CONSTRAINT_NAME='<pk-of-table>';
Ở đâu pk-of-table
là tên của khóa chính của bảng bị cắt bớt
Chạy đầu ra của truy vấn trên. Khi điều này đã được thực hiện, hãy nhớ kích hoạt lại chúng, chỉ cần thay đổi DISABLE CONSTRAINT
vào ENABLE CONSTRAINT