Làm cách nào tôi có thể cắt bớt tất cả bảng người dùng trong oracle? Tôi có vấn đề với các ràng buộc bảng.Làm thế nào để cắt bớt tất cả các bảng người dùng?
Trả lời
Không cần cho các biến
begin
for r in (select table_name from user_tables) loop
execute immediate 'truncate table ' || r.table_name;
end loop;
end;
Trân K
declare
begin
for c1 in (select table_name, constraint_name from user_constraints) loop
begin
execute immediate ('alter table '||c1.table_name||' disable constraint '||c1.constraint_name);
end;
end loop;
for t1 in (select table_name from user_tables) loop
begin
execute immediate ('truncate table '||t1.table_name);
end;
end loop;
for c2 in (select table_name, constraint_name from user_constraints) loop
begin
execute immediate ('alter table '||c2.table_name||' enable constraint '||c2.constraint_name);
end;
end loop;
end;
/
Bạn có thể đầu ra, sau đó thực hiện một trong những bạn thích:
set serveroutput on;
begin
for r in (select table_name from user_tables) loop
dbms_output.put_line('truncate table ' || r.table_name);
end loop;
end;
cải thiện trong trường hợp bạn có những hạn chế đặc biệt làm cho kịch bản trên không thành công:
set serveroutput on;
declare
begin
for c1 in (select y.table_name, y.constraint_name from user_constraints y, user_tables x where x.table_name = y.table_name) loop
begin
dbms_output.put_line('alter table '||c1.table_name||' disable constraint '||c1.constraint_name || ';');
execute immediate ('alter table '||c1.table_name||' disable constraint '||c1.constraint_name);
end;
end loop;
for t1 in (select table_name from user_tables) loop
begin
execute immediate ('truncate table '||t1.table_name);
end;
end loop;
for c2 in (select table_name, constraint_name from user_constraints) loop
begin
execute immediate ('alter table '||c2.table_name||' enable constraint '||c2.constraint_name);
end;
end loop;
end;
/
các ràng buộc đáng buồn bị 'ràng buộc' theo thứ tự. bạn có thể sửa chữa việc hủy kích hoạt các ràng buộc bằng cách thêm 'thác' vào cuối lệnh 'tắt'. nhưng rất có thể bạn sẽ không thể tự động hóa việc kích hoạt các ràng buộc. – mmoossen
Cải thiện tập lệnh trên trong trường hợp bạn không thể loại bỏ ràng buộc bởi vì phụ thuộc tồn tại (dưới dạng khóa ngoại phụ thuộc vào ràng buộc này - ORA-02297.) Và bằng cách in tất cả (tắt, cắt ngắn và cho phép) báo cáo.
set serveroutput on;
declare
begin
for c1 in (select y1.table_name, y1.constraint_name from user_constraints y1, user_tables x1 where x1.table_name = y1.table_name order by y1.r_constraint_name nulls last) loop
begin
dbms_output.put_line('alter table '||c1.table_name||' disable constraint '||c1.constraint_name || ';');
execute immediate ('alter table '||c1.table_name||' disable constraint '||c1.constraint_name);
end;
end loop;
for t1 in (select table_name from user_tables) loop
begin
dbms_output.put_line('truncate table '||t1.table_name || ';');
execute immediate ('truncate table '||t1.table_name);
end;
end loop;
for c2 in (select y2.table_name, y2.constraint_name from user_constraints y2, user_tables x2 where x2.table_name = y2.table_name order by y2.r_constraint_name nulls first) loop
begin
dbms_output.put_line('alter table '||c2.table_name||' enable constraint '||c2.constraint_name || ';');
execute immediate ('alter table '||c2.table_name||' enable constraint '||c2.constraint_name);
end;
end loop;
end;
- 1. Làm thế nào để cắt bớt một bảng bằng Doctrine?
- 2. Rails seed: Làm thế nào để cắt bớt bảng DB?
- 3. Làm cách nào để cắt bớt bảng đúng cách?
- 4. Cắt WPF ngay cả khi không cần cắt bớt - làm thế nào để tắt?
- 5. Thả tất cả các bảng/chuỗi người dùng trong Oracle
- 6. Làm thế nào để cắt bớt các giá trị của một mảng có khối lượng 2D
- 7. Làm cách nào để hiển thị tất cả các đặc quyền từ người dùng trong oracle?
- 8. Sử dụng hibernate/hql để cắt bớt một bảng?
- 9. Làm thế nào để có được tất cả người dùng trong một vai trò cụ thể?
- 10. cắt ngắn tất cả các bảng trong cơ sở dữ liệu mysql
- 11. Caching tất cả người dùng trong ASP.NET
- 12. Nhiệm vụ Rake để cắt ngắn tất cả các bảng trong Rails 3
- 13. Nhấp Một lần - Tất cả người dùng
- 14. Làm thế nào để có được tất cả các bảng có FK đến một bảng khác?
- 15. Cách khôi phục dữ liệu từ bảng cắt bớt
- 16. Làm cách nào để cắt bớt danh sách?
- 17. Xóa, Cắt bớt hoặc Thả để làm sạch một bảng trong MySQL
- 18. Làm thế nào để cắt bớt các văn bản trả về cho một cột trong một truy vấn MySQL
- 19. Cắt tất cả các thuộc tính chuỗi
- 20. log4j cắt bớt stacktrace
- 21. Cấp quyền Chọn tất cả các Bảng do Người dùng Cụ thể
- 22. Thêm cột vào tất cả các bảng người dùng trong t-sql
- 23. Cắt bớt khoảng trắng từ tên người dùng và mật khẩu
- 24. Làm thế nào để xóa người dùng trong Oracle 10 bao gồm tất cả đó là tablespace và datafiles
- 25. Làm thế nào để giảm bớt các tập tin jquery?
- 26. Làm thế nào để cắt bớt một chuỗi để phù hợp trong một container?
- 27. ORMLite đặt lại tất cả các bảng
- 28. Django làm thế nào để xóa hồ sơ của người dùng và bài viết và tất cả các assocation sau khi người dùng xóa?
- 29. Chuỗi RODBC bị cắt bớt
- 30. Làm thế nào để cắt bớt một NSString dựa trên chiều rộng đồ họa?
-1 Không giải quyết được nhu cầu xử lý các ràng buộc – APC