Oracle sequence explanation and creation of auto-incrementing primary key Oracle sequence primary key sequence: a database object provided by oacle to generate a series of unique numbers. L automatic provision of unique value l shared object l mainly used to provide the primary key value l loading the sequence value into memory can improve access efficiency 1. First, create a sequence. The syntax format of the Oracle sequence is:
Create sequence name [increment by n] [start with n] [{MAXVALUE/MINVALUEn | NOMAXVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];
1) increment by is used to define the sequence step. If omitted, the default value is 1. If a negative value is displayed, the value of the Oracle sequence decreases according to this step. 2) start with defines the initial value of the sequence (that is, the first value generated). The default value is 1. 3) MAXVALUE defines the maximum value that can be generated by the sequence generator. The "NOMAXVALUE" option is the default option, indicating that no maximum value is defined. In this case, the maximum value generated by the system for an incremental Oracle sequence is the 27 power of 10. For a descending sequence, the maximum value is-1. 4) MINVALUE defines the minimum value generated by the sequence generator. The "NOMAXVALUE" option is the default option, indicating that there is no minimum value defined. What is the minimum value that the system can produce for the descending sequence? 10 to the power of 26; for incremental sequence, the minimum value is 1. 5) CYCLE and NOCYCLE indicate whether to CYCLE when the value of the sequence generator reaches the limit value. CYCLE indicates loop, and NOCYCLE indicates no loop. If there is a loop, when the ascending sequence reaches the maximum value, it loops to the minimum value. When the descending sequence reaches the minimum value, it loops to the maximum value. If there is no loop, an error occurs when a new value is generated after the limit value is reached. 6) CACHE (buffer) defines the size of the memory block for storing the sequence. The default value is 20. NOCACHE indicates no memory buffer for the sequence. Buffer the sequence memory to improve the sequence performance. 2. the syntax for deleting the Oracle SEQUENCE is the drop sequence name. Using the SEQUENCE will produce cracks. l series may cause cracks in the following situations: • rollback • system exception instance application:
1. Sqlplus is logged on first: SQL> conn scott/tiger; 2. Create a table: drop table users; create table users (id number (6), name varchar2 (30), constraint pk_id primary key (id); 3. Sequence creation: create sequence aq1start with 1 increment by 1 minvalue 1 maxvalue 9999999 notesenocachenoorder; // or drop sequence sq1; create sequence sq1; 4. Trigger creation: create or replace triggerpn_triggerbefore insert on usersfor each rowbegin select sq1.nextval into: new. id from sys. dual; end; 5. Okay, insert a record to test .... Insert into users (name) values ('zhsan'); select * from users;