Announcement

Collapse
No announcement yet.

Nur EIN Eintrag pro Tabelle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nur EIN Eintrag pro Tabelle

    Hallo,

    ich suche eine Möglichkeit, die maximale Anzahl an Einträgen in einer bestimmten Tabelle vorzugeben. Das macht z.B. bei Chefs oder Anzahl Tagen oder ... Sinn.
    Ich dachte an einen Trigger (lasse mir aber auch gerne etwas anderes vorschlagen). Leider meckert er beim THEN:

    Code:
    CREATE trigger BOSS_TRIGGER
    active on transaction commit position 0
    AS
    begin
      If ((Select Count(*) From tchef) > 2)
        THEN (RollBack)
    end
    Wer weiß eine Lösung?

    Grüße

  • #2
    Würde ich eher als CHECK deklarieren. Ohne dein Schema zu könne, würde ich es aber als überarbeitungswürdig betrachten. Es macht wenig Sinn eine Tabelle für Chefs zu verwenden. Dies würde ich eher als Position eines Angestellten implementieren

    Comment


    • #3
      Hallo,
      also ich kenne Firebird und seine Gegebenheiten nicht, aber Transaktionssteuerung (Rollback) in einem Trigger *brrrr* - da gruselt mir ...

      Ansonsten stimme ich Markus zu, versuch das mit CHECK-Constraint zu lösen. Z.B.: Ein zusätzliches Control-Feld (Integer) mit NOT NULL + UNIQUE + >0 + <3
      Damit lassen sich dann maximal zwei DS einfügen.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        rollback im trigger geht auch nicht, zum Glück, Exception ist das Stichwort
        (create exception .....)

        Gruß
        Holger
        www.firebird-conference.com

        Comment

        Working...
        X