1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as mni
SQL>
SQL> create table border (
2 border_key number,
3 country1 varchar2(2),
4 country2 varchar2(2),
5 dist number
6 )
7 /
Table created
SQL> alter table border
2 add constraint pk_border Primary Key (country1, country2)
3 /
Table altered
SQL> alter table border
2 add constraint uk_border Unique (border_key)
3 /
Table altered
SQL> Create Or Replace Trigger bi_border_fer
2 Before Insert On Border
3 For Each Row
4 Begin
5 :new.border_key := dbms_utility.get_hash_value(:new.country1,1000,2048) +
6 dbms_utility.get_hash_value(:new.country2,1000,2048);
7 End;
8 /
Trigger created
SQL> insert into border (country1, country2, dist)
2 values('FR','BE', 1200)
3 /
1 row inserted
SQL> insert into border (country1, country2, dist)
2 values('BE','FR', 1200)
3 /
insert into border (country1, country2, dist)
values('BE','FR', 1200)
ORA-00001: violation de contrainte unique (MNI.UK_BORDER)
SQL> |
Partager