Problème trigger auto increment [Oracle] - SQL/NoSQL - Programmation
Marsh Posté le 23-07-2008 à 11:08:06
je ne suis pas certain mais il me semble que pour la séquence, il faut dire qu'elle est la dernière valeur.
de 1 à 1000 par exemple. Quand il sera rendu à 1000 il retournera au départ et cherchera un emplacement vide. Tu peux mettre 50000 si tu veux
CREATE SEQUENCE ma_sequence START WITH 1 INCREMENT BY 1 MAXVALUE 50000;
Marsh Posté le 23-07-2008 à 11:08:46
C'est bon j'ai trouvé, en fait il ne faut pas mettre la table.nom du champ, mais simplement le nom du champ :
Réponse :
Code :
|
Marsh Posté le 23-07-2008 à 11:11:47
krovomi a écrit : C'est bon j'ai trouvé, en fait il ne faut pas mettre la table.nom du champ, mais simplement le nom du champ :
|
ok. C'est bon à savoir.
Pour le post que j'ai mis précédemment, je me suis trompé car je viens de faire une rechercher à l'instant et on est pas obligé de donner une limite à la séquence.
Marsh Posté le 23-07-2008 à 11:41:19
Une autre question :
J'ai une table tmp_export_profils_portrait et une table tmp_export_profils_port_tom, elles ont la même structure, sauf que la première contrairement à la seconde n'a pas de champ id_port (champ auto_increment).
Avec le trigger crée au dessus, quand je fais :
Code :
|
J'ai l'erreur ORA-00947 : Not enough values, donc je voudrais savoir pourquoi il me sort cette erreur alors que normalement il devrait simplement faire un copier/coller de la table tmp_export_profils_portrait dans tmp_export_profils_port_tom en mettant le champ tmp_export_profils_port_tom.id_port en auto-increment, non ?
Soit j'ai zappé un truc, soit je ne comprends pas le principe, quelqu'un pourrait m'expliquer ?
Merci
Marsh Posté le 24-07-2008 à 11:41:00
ReplyMarsh Posté le 24-07-2008 à 13:27:55
insert into <table> (<fieldlist> ) select ...
et y'a plus de problème
et c'est l'unique syntaxe qu'il faut utiliser
si tu n'énumères pas les champs manuellement dans ton insert, c'est comme le "*" dans les select, t'es mort au bout de deux jours d'utilisation de ton application
et à noter que si tu mets un trigger sur ton champ auto-incrément, tu peux shooter la clause "not null" de la définition de la table, ça devrait te permettre d'éviter les ignominies que je vois dans le lien que tu as posté
Marsh Posté le 23-07-2008 à 11:01:46
Bonjour,
J'ai crée un trigger et une séquence pour faire un auto-increment sous Oracle mais il me pose un problème :
Séquence :
Trigger :
C'est la ligne
qui pose problème, voyez-vous pourquoi ?
Merci