Ich habe eine Tabelle namens "Project" in meiner Datenbank und eine Tabelle namens "Milestone". Der Primärschlüssel von "Project" ist eine Spalte namens ProjectID. Die Beziehung "Meilenstein" hat einen Primärschlüssel mit der Bezeichnung "Nummer" und einen Fremdschlüssel, der sich auf das Projekt bezieht, zu dem er gehört.OracleSQL: Auto Increment abhängig von einer anderen Spalte (schwache Entity-Modellierung)
Wenn ich einen neuen Eintrag in "Milestone" einfüge möchte ich, dass der Primärschlüssel "Number" automatisch erhöht wird, aber in Bezug auf das Projekt gehört der neue Meilenstein. Die Idee ist im Grunde folgende:
Milestone
ProjectID | Number
69 1
69 2
69 3
420 1
420 2
666 1
420 3
Ist es möglich, dies in OracleSQL mit einem Trigger zu erkennen, wenn die Werte innerhalb der „Milestone“ Tabelle einfügen?
Vielen Dank für Ihren freundlichen Kommentar und eine sehr gute Klarstellung. In Bezug auf die Spalte "Nummer" habe ich zum Glück für mich die Spalte "Nummer" genannt, obwohl ich nicht das englische Wort dafür verwendet habe, sondern eine andere Sprache. Der Code, den Sie mir gezeigt haben, funktioniert jedoch nicht vollständig. Wenn ich versuche, einen neuen Milestone-Eintrag einzufügen, erhalte ich den Fehler "Trigger ist ungültig und erneute Validierung fehlgeschlagen". – Infecto
Wie bei allem Code in StackOverflow müssen Sie möglicherweise ein wenig Debugging durchführen, um es in Ihrer Situation zum Laufen zu bringen. Anscheinend gibt es einen Fehler im Code für deinen Auslöser. Um herauszufinden, was der Fehler ist, können Sie Folgendes ausführen: 'SELECT * FROM ALL_ERRORS WHERE OWNER = 'Besitzer auslösen' UND NAME = 'Name des Triggers' ORDER BY SEQUENCE ', wobei' 'Triggername' 'durch den Namen Ihres Triggers ersetzt wird und "Trigger Owner" mit dem Schema, in dem der Trigger erstellt wurde. Viel Glück. –