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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| CREATE DATABASE '..\Data\Base.fdb' page_size 4096 DEFAULT CHARACTER SET ISO8859_1;
-- =====================
-- création table "test"
-- =====================
create table test (
id integer not null,
num integer not null,
nom char(25) not null collate fr_fr,
primary key (id, num)
);
-- ===========================
-- création tigger 'increment'
-- ===========================
SET TERM #;
CREATE TRIGGER increment for test
active before insert position 0
as
begin
new.num = (select coalesce(max(num)+1, 1) from test where id = new.id);
END#
SET TERM ;#
-- =====================
-- insertion dans 'test'
-- =====================
insert into test (id,nom) values ( 1,'Un');
insert into test (id,nom) values (10,'dix');
insert into test (id,nom) values (20,'vingt');
insert into test (id,nom) values ( 1,'Deux');
insert into test (id,nom) values (10,'onze');
insert into test (id,nom) values (20,'vingt-et-un');
insert into test (id,nom) values ( 1,'Trois');
insert into test (id,nom) values (10,'douze');
insert into test (id,nom) values (20,'vingt-deux');
insert into test (id,nom) values ( 1,'Quatre');
insert into test (id,nom) values (10,'treize');
insert into test (id,nom) values (20,'vingt-trois');
insert into test (id,nom) values ( 1,'Cinq');
insert into test (id,nom) values (20,'vingt-quatre');
insert into test (id,nom) values (20,'vingt-cinq');
-- ================
-- Vidage de 'test'
-- ================
select * from test order by id, num;
ID NUM NOM
============ ============ =========================
1 1 Un
1 2 Deux
1 3 Trois
1 4 Quatre
1 5 Cinq
10 1 dix
10 2 onze
10 3 douze
10 4 treize
20 1 vingt
20 2 vingt-et-un
20 3 vingt-deux
20 4 vingt-trois
20 5 vingt-quatre
20 6 vingt-cinq
exit;
Appuyez sur une touche pour continuer... |
Partager