Announcement

Collapse
No announcement yet.

Datensatz speichern in abhängigen Tabellen

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

  • Datensatz speichern in abhängigen Tabellen

    Hallo,

    ich habe mal wieder eine Frage.
    Ich möchte in einer Procedure neue Daten speichern und geänderte Daten
    anpassen.
    Nun habe ich eine Datenbankstruktur mir einer Zwischentabelle und weiss
    nicht wie ich das realisieren soll.

    Tabelle Daten
    daten_id | name
    ---------------------------------------
    1 | jens
    2 | bernd

    Tabelle DatenOptionen
    dataoption_id | daten_id | optionen_id
    ----------------------------------------
    1 | 1 | 1
    2 | 1 | 2
    3 | 1 | 3
    4 | 2 | 1
    5 | 2 | 2


    Tabelle Optionen
    optionen_id | bezeichnung
    ----------------------------------
    1 | value1
    2 | value2
    3 | value3

    Hatt eventuelle jemand ein Beispiel wie ich einen neuen Datensatz in die
    Tabelle Daten und gleichzeitig in die Tabelle DatenOptionen einfüge.
    Auch mit dem Update bin ich mir unsicher hier muss man vorher ja erst
    irgendwie prüfen ob die Daten schon existieren.

    Ein Beispiel wäre echt super.

  • #2
    [highlight=sql]
    INSERT INTO DATEN VALUES (3, danielafischer);
    commit;

    INSERT INTO DATENOPTIONEN VALUES (6, 3, 3);
    INSERT INTO DATENOPTIONEN VALUES (7, 3, 2);
    commit;
    [/highlight]

    Die jeweiligen IDs sollten natürlich nicht per Hand vergeben werden, sondern mit dem Mechanismus der jeweiligen DB (Oracle -> Sequence, SQL Server -> Identity...)

    Comment


    • #3
      Vielen Dank für deine Antwort.
      Das Insertstatement war mir schon klar aber wie ermittel ich die aktuelle Id nach dem insert bzw ein update. Diese id muss ich ja dann in der anderen Tabelle einfügen.

      insert into daten vales (3,'text'); --> id für zwischentabelle ermitteln.

      insert into datenoption vales (6,??,3)

      Puh, ist nicht so einfach.

      Comment


      • #4
        Also ich würde sagen das hängt jetzt sehr von deiner Datenbank und dem verwendeten Datenbank Framework ab wie Du das alles handeln solltest

        Comment


        • #5
          [highlight=sql]
          Declare @ID int

          INSERT INTO DATEN VALUES (3, danielafischer);

          SET @ID = Scope_Identity()

          INSERT INTO DATENOPTIONEN VALUES (6, @ID, 3);


          [/highlight]
          P.S. Was hat das mit ASP zu tun ?
          Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

          Comment

          Working...
          X