salut je chercha a faire une incrementation
sous oracle sur une clé primaire
comment fait on ?
se fait elle incrementation si on aliment tout les autres lément de la table sans touché la clé primaire
merci a vous
salut je chercha a faire une incrementation
sous oracle sur une clé primaire
comment fait on ?
se fait elle incrementation si on aliment tout les autres lément de la table sans touché la clé primaire
merci a vous
Bonjour,
Ce sujet a déjà été traité, par ex. http://www.developpez.net/forums/vie...+before+insert
Laly.
In the heart of the truly greats, perfection is never achieved but endlessly pursued.
Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)
create trigger montrigger
before insert on table for each row
begin
select sqetest.nextval into :new.num_t from dual;
end;
/
avec ce code oracle me fait une erreur " privilege isufissant sur test "
alors que j'ai cree cette table
Est-ce-que tu as le privilège CREATE TRIGGER ?
Laly.
In the heart of the truly greats, perfection is never achieved but endlessly pursued.
Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)
je vient de rajouter le privilege manquant
mais lorsque je veut inserer une donner dans la table qui possede 2 attrbut . une clé primaire et un autre attribut
j'alimente le 2 eme attribut mais la clé primaire de s'incremente pas
mercia vous
C'est que ton trigger n'a pas fonctionné, tu es sûr qu'il a bien compilé, tu n'as eu aucun msg d'erreur ?
Regardes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 SQL> create table test (pk number, y varchar2(100)); Table created. SQL> create sequence seq_test; Sequence created. SQL> create or replace trigger ti_test before insert on test for each row 2 begin 3 select seq_test.nextVal into :new.pk from dual; 4 end; 5 / Trigger created. SQL> insert into test(y) values('Hello 1?'); 1 row created. SQL> insert into test(y) values('Hello 2?'); 1 row created. SQL> select * from test; PK ---------- Y -------------------------------------------------------------------------------- 1 Hello 1? 2 Hello 2?
Laly.
In the heart of the truly greats, perfection is never achieved but endlessly pursued.
Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)
create trigger trigtt before insert on test for each row
begin
select testtrig .nextval into : new.num_t from dual
end
/
apres executer ce code
il me fait une erreur
Avertissement : Déclencheur créé avec erreurs de compilation.
avant j'ai cree un table test ( num_t , nom)
merci a vous
insert into test (nom) values ('coucou') ;
avec cette commande j'ai une erreur
la voila
ORA-04098: Déclencheur 'TEST1.TRIGTEST' non valide. Echec de la revalidation
Peux-tu nous indiquer ce que te renvoie la requête :Envoyé par doudou1
C'est vrai orafrance que c'est tout de suite plus beau avec les balises code !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from user_errors where name = 'trigtt';![]()
vu comme tel l'espace entre testtrig et .nextval est en trop.testtrig .nextval
d'où l'utilité de na pas donner le code approximatif ressaisi mais de faire un copier/coller de l'ensemble du code. vous ferez gagner du temps à tout le monde.
Partager