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

Trình tự trong tiên tri là gì

Trình tự trong tiên tri là gì

  • Oracle Sequence là một đối tượng do người dùng tạo có thể được nhiều người dùng chia sẻ để tạo ra các số nguyên duy nhất
  • Công dụng chung nhất của chuỗi sẽ là tạo cột khóa chính trong bảng.
  • Trình tự được tạo bởi quy trình nội bộ của oracle, vì vậy chúng tôi không cần phải lo lắng về điều đó. Nó sẽ tiết kiệm thời gian3 vì nhà phát triển không cần tạo quy trình tạo trình tự
  • Trình tạo số tuần tự, có thể được định cấu hình để tăng hoặc giảm
  • Nó chỉ tồn tại trong từ điển dữ liệu, có thể bị giới hạn hoặc có thể lặp lại (chu kỳ).
  • Chúng tôi cần tạo đặc quyền trình tự để tạo trình tự

Tạo một chuỗi được thực hiện bằng cách sử dụng

TẠO PHÂN TÍCH

[BẮT ĐẦU VỚI]

[TĂNG BẰNG]

[KHÔNG / MINVALUE]

[KHÔNG / MAXVALUE]

[KHÔNG / CYCLE]

[KHÔNG / CACHE];

Mô tả của từng giá trị

BẮT ĐẦU VỚI Nó xác định giá trị ban đầu của chuỗi ( mặc định 1 ),
TĂNG BẰNG Nó xác định mức tăng hoặc giảm ( mặc định 1 ),
MINVALUE Nó xác định giá trị thấp nhất cho một chuỗi giảm dần
MAXVALUE Nó xác định giá trị cao nhất cho một chuỗi ngày càng tăng
CHU KỲ Nó xác định xem trình tự có lặp lại chính nó hay không
CACHE Nó xác định khối số thứ tự được giữ trong bộ nhớ ( mặc định 20 ), NOCACHE buộc cập nhật từ điển dữ liệu cho mỗi số được tạo bởi chuỗi

Ví dụ

tạo chuỗi test_tech bắt đầu với 1
tăng 1
maxvalue 10000
cycle
cache 20;

tạo trình tự test_tech1

bắt đầu với 1
tăng 1
maxvalue 4500000
chu kỳ
nocache;

Cách sử dụng chuỗi

Để sử dụng trình tự, chỉ cần sử dụng cột giả CURRVAL và NEXTVAL

Cột giả NEXTVAL

Nó được sử dụng để tạo số thứ tự liên tiếp của trình tự được chỉ định

Cột giả CURRVAL

Nó chứa trình tự mà người dùng vừa tạo

CHỌN TEST_TECH.NEXTVAL TỪ KÉP;

CHỌN TEST_TECH.CURRVAL TỪ KÉP;

CHỌN TEST_TECH.NEXTVAL TỪ KÉP;

Cách sửa đổi trình tự

Chúng tôi có thể sửa đổi các trình tự bằng cách sử dụng trình tự thay đổi.

SQL> ALTER SEQUENCE tech_test1 TĂNG 50;

Các thay đổi chỉ ảnh hưởng đến việc sử dụng trình tự trong tương lai.

Bạn phải là chủ sở hữu hoặc có đặc quyền thay thế trên trình tự đó

Chúng tôi không thể thay đổi tùy chọn bắt đầu bằng. Đối với trình tự này cần phải được loại bỏ và tạo lại

Các thay đổi trình tự cũng được xác thực

Cách bỏ trình tự

Bỏ chế độ xem được thực hiện bằng lệnh DROP trình tự.

Trình tự thả test_tech;

Chế độ xem từ điển để xem dữ liệu trình tự

Chi tiết trình tự có thể được truy vấn từ từ điển bằng cách truy vấn USER_SEQUENCES, ALL_ SEQUENCES hoặc DBA_ SEQUENCES. Có ba loại chế độ xem

USER_% Chế độ xem này chỉ chứa thông tin về các đối tượng do người dùng sở hữu

Ví dụ

USER_TABLES, USER_TAB_COLS

ALL-% Dạng xem này chứa thông tin về các đối tượng mà người dùng có thể truy cập trong cơ sở dữ liệu.

Ví dụ

ALL_TABLES, ALL_TAB_COLS

DBA_% Chế độ xem này chứa thông tin của tất cả các đối tượng trong hệ thống và đây là các chế độ xem bị hạn chế mà người dùng có vai trò DBA có thể truy cập

Ví dụ

DBA_TABLES, DBA_TAB_COLS

DBA_% lượt xem về thông tin chuỗi ALL_% lượt xem về thông tin chuỗi USER_% lượt xem về thông tin chuỗi
Xem về chuỗi thông tin dba_sequences all_ sequences user_ sequences

Để liệt kê tất cả các chuỗi được sở hữu bởi việc sử dụng hiện tại

chọn tên_trình_tự từ user_sequences;

Để liệt kê tất cả các chuỗi trong cơ sở dữ liệu:

Chọn chủ sở hữu, tên_trình từ dba_sequences;

Để liệt kê các chuỗi mà người dùng hiện tại có thể truy cập:

chọn tên_trình_tự từ all_sequences

Làm cách nào để xác định tất cả thông tin về trình tự?

chọn tên_tốc_tri, giá_trị_tối_đa, giá_trị_tối đa, giá_trị_tăng_số, số_số_ cuối cùng
FROM DBA_SEQUENCES

trong đó OWNER =‘
và sequence_NAME =‘’;

Cách truy xuất giá trị hiện tại của một chuỗi tiên tri mà không tăng giá trị đó

Cột last_number hiển thị số thứ tự có sẵn tiếp theo nếu không có bộ nhớ cache nào được chỉ định

CHỌN last_number

FROM user_sequences

WHERE sequence_name =‘’;

Cách trích xuất định nghĩa trình tự (câu lệnh DDL) từ cơ sở dữ liệu Oracle mà không cần phải đi qua một đống chế độ xem từ điển

Cú pháp:

SQL> set long 1000
SQL> set pagesize 0select DBMS_METADATA.GET_DDL (‘SEQUENCE’, ' ’) from DUAL;

Cách đặt giá trị LASTVALUE trong Trình tự Oracle

ALTER SEQUENCE tech_seq_name TĂNG 250;

CHỌN tech_seq_name.nextval TỪ kép;

ALTER SEQUENCE tech_seq_name TĂNG BẰNG 1;

Cách đặt lại trình tự trong Oracle

Có nhiều cách.

a) Chúng ta có thể thả và tạo lại chuỗi. Nhưng điều này làm mất hiệu lực tất cả các đối tượng phụ thuộc (trình kích hoạt / thủ tục được lưu trữ, v.v.)

b) Chúng tôi có thể đặt lại bằng các bước đơn giản sau

Bước 1:Tìm giá trị mới nhất của dãy

Chọn tech_seq_name.nextval TỪ kép;

Bước 2:thay đổi trình tự với sự gia tăng giá trị âm của giá trị mới nhất

ALTER SEQUENCE tech_seq_name INCREMENT BY - giá trị tối thiểu 0;

Bước 3 Thực hiện tiếp theo để đặt nó về 0

CHỌN tech_seq_name.nextval TỪ kép;

Bước 4:Thay đổi mức tăng trở lại 1

ALTER SEQUENCE tech_seq_name TĂNG BẰNG 1;

Ví dụ

CHỌN tech_seq_name.nextval TỪ kép;

—————————————

250

ALTER SEQUENCE tech_seq_name TĂNG -250;

CHỌN tech_seq_name.nextval TỪ kép;

ALTER SEQUENCE tech_seq_name TĂNG BẰNG 1;

Bạn có thể tìm thêm trên liên kết này

Cách đặt lại trình tự

Tác động của việc lưu vào bộ nhớ đệm các trình tự

Trình tự được lưu vào bộ nhớ đệm với mục đích cải thiện hiệu suất tìm nạp. Trong RAC, mỗi phiên bản lưu trữ các giá trị bộ nhớ đệm

Chúng ta có thể có khoảng trống trong trình tự khi sử dụng bộ nhớ cache do những lý do sau

  1. Quá trình khôi phục xảy ra
  2. Sự cố hệ thống hoặc sự cố phiên bản
  3. Trình tự được sử dụng trong một bảng khác

Có một tính năng mới trong Oracle 12c cho các chuỗi

Chuỗi phiên

Với Cơ sở dữ liệu Oracle 12C các từ khóa mới SESSION, GLOBAL có sẵn có thể được chỉ định trong quá trình tạo chuỗi
TẠO SEQUENCE test_session_seq BẮT ĐẦU VỚI 1 TĂNG BẰNG 1 PHẦN;
TẠO SEQUENCE test_global_seq BẮT ĐẦU VỚI 1 TĂNG BẰNG 1 GLOBAL;

Toàn cầu Phiên
tạo chuỗi tiêu chuẩn nổi tiếng trong bản phát hành trước. Đây là mặc định. tạo trình tự phiên kiểu mới, là kiểu trình tự đặc biệt được thiết kế đặc biệt để sử dụng với các bảng tạm thời toàn cầu có khả năng hiển thị phiên. Chuỗi phiên trả về một dải số thứ tự duy nhất chỉ trong một phiên, nhưng không trả về giữa các phiên. Một điểm khác biệt nữa là trình tự phiên không liên tục. Nếu một phiên biến mất, trạng thái của các chuỗi phiên được truy cập trong phiên cũng vậy.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-12505, TNS:người nghe hiện không biết về SID được cung cấp trong kết nối des

  2. Làm cách nào để tìm các giá trị trùng lặp trong bảng trong Oracle?

  3. cách kiểm tra Cơ sở dữ liệu có nhất quán sau khi khôi phục không đầy đủ

  4. Kích hoạt để thực thi mối quan hệ M-M

  5. Làm thế nào để tìm ba mức lương cao nhất trong bảng trống trong oracle?