Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tắt tất cả các ràng buộc bảng trong Oracle

Tốt hơn là tránh ghi ra các tệp ống đệm tạm thời. Sử dụng một khối PL / SQL. Bạn có thể chạy điều này từ SQL * Plus hoặc đưa thứ này vào một gói hoặc thủ tục. Việc tham gia USER_TABLES là có để tránh các hạn chế về chế độ xem.

Không chắc rằng bạn thực sự muốn vô hiệu hóa tất cả các ràng buộc (bao gồm NOT NULL, khóa chính, v.v.). Bạn nên nghĩ đến việc đặt bind_type trong mệnh đề WHERE.

BEGIN
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name
   FROM user_constraints c, user_tables t
   WHERE c.table_name = t.table_name
   AND c.status = 'ENABLED'
   AND NOT (t.iot_type IS NOT NULL AND c.constraint_type = 'P')
   ORDER BY c.constraint_type DESC)
  LOOP
    dbms_utility.exec_ddl_statement('alter table "' || c.owner || '"."' || c.table_name || '" disable constraint ' || c.constraint_name);
  END LOOP;
END;
/

Việc kích hoạt lại các ràng buộc khó hơn một chút - bạn cần phải kích hoạt các ràng buộc khóa chính trước khi có thể tham chiếu chúng trong một ràng buộc khóa ngoại. Điều này có thể được thực hiện bằng cách sử dụng ORDER BY trên bind_type. 'P' =khóa chính, 'R' =khóa ngoài.

BEGIN
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name
   FROM user_constraints c, user_tables t
   WHERE c.table_name = t.table_name
   AND c.status = 'DISABLED'
   ORDER BY c.constraint_type)
  LOOP
    dbms_utility.exec_ddl_statement('alter table "' || c.owner || '"."' || c.table_name || '" enable constraint ' || c.constraint_name);
  END LOOP;
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để truy xuất giá trị hiện tại của một chuỗi oracle mà không tăng nó?

  2. vấn đề với hàm to_date với sysdate

  3. Nó chính xác là gì một BLOB trong ngữ cảnh DBMS

  4. Hai câu lệnh PLSQL với begin và end, chạy tốt riêng nhưng không cùng nhau?

  5. Xác định xem Dữ liệu Trường trong Oracle có thuộc kiểu Số hay không