如果我想在Oracle SQLDeveloper上创建一个表,并在主键中放入一个总是以"c"开头的varchar后面跟着9个自动递增的数字,我怎么能呢?
例子:C0000000001
你可以这样做:
create table test_table (
id VARCHAR2(30)
constraint test_table_id_pk primary key
)
;
-- triggers
create or replace trigger test_table_biu
before insert
on test_table
for each row
begin
:id := 'c'||LPAD(test_table_seq.NEXTVAL,9,0);
end test_table_biu;
/
请注意,当序列达到10位数时,由于重复的值,它将开始失败(它将切断额外的数字)。