我有一个表app
和一列ID, PW
和ID auto increment
。我想创建触发器,当我插入新行(ID
),然后插入PW
列随机字符串,例如75Da5A(长度为7),请帮忙
ID PW
1 75Da5A
2 45daa8
3 571as5
----------
---------
答案 0 :(得分:0)
您可能需要以下内容:
SQL> CREATE TABLE app ( id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
2 pwd varchar2(16));
Table created.
SQL> create or replace trigger randomPwd
2 before insert on app
3 for each row
4 begin
5 if :new.pwd is null then
6 :new.pwd := dbms_random.string('a', 7);
7 end if;
8 end;
9 /
Trigger created.
SQL> insert into app values ('', '');
1 row created.
SQL> select * from app;
ID PWD
---------- ----------------
1 RVaQalX
您可以使用dbms_random.string
以不同方式获取随机字符串,而无需编辑结果。
- 'u','U' - 以大写字母字符
返回字符串- 'l','L' - 以小写字母字符
返回字符串- 'a','A' - 以大小写混合字母字符返回字符串
- 'x','X' - 以大写字母数字字符返回字符串
- 'p','P' - 以任何可打印的字符返回字符串。