Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Dateneingabe in einer Tabelle soll in anderer Tabelle neue Spalten einfügen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von helli, 11 Juli 2016.

  1. helli

    helli Neuer Benutzer

    Hallo,

    ich bin absoluter Neuling was MySQL angeht. Nun habe ich folgendes Problem: Ich gebe in Tabelle A Aufgabentexte ein (Aufgaben_nr, Aufgaben_text). Es soll dann in Tabelle B Schüler jeweils eine Spalte mit der Aufgaben-Nummer mit einem "a" davor angelegt werden. Wie mache ich das? Ich benutze phpmyadmin zum bearbeiten meiner Datenbank.

    Schon mal besten Dank für die Hilfe.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Versteh ich Dich richtig, ein Insert in Tabelle A soll einen weiteren Record in Tabelle B triggern? Dann brauchst Du einen TRIGGER.
     
  3. helli

    helli Neuer Benutzer

    Danke für Deine Antwort. Ich habe also leider keine Ahnung, wie der Trigger aussehen muss. Die Anleitungen im Netz haben mir da auch nicht wirklich weitergeholfen. Wie gesagt, ich kenne mich mit MySQL eigentlich nicht aus.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ich auch nicht, nur mit PostgreSQL. Da geht es so, mal als primitives Beispiel:

    Code:
    test=# create table quelle (id int primary key, t text);
    CREATE TABLE
    test=*# create table ziel (id int primary key, t text);
    CREATE TABLE
    test=*# create or replace function trigger_to_copy() returns trigger as $$begin insert into ziel values (new.id, new.t); return new; end; $$language plpgsql;
    CREATE FUNCTION
    test=*# create trigger trg1 after insert on quelle for each row execute procedure trigger_to_copy();
    CREATE TRIGGER
    test=*# insert into quelle values (1, 'das ist ein test');
    INSERT 0 1
    test=*# select * from ziel;
     id |  t   
    ----+------------------
      1 | das ist ein test
    (1 Zeile)
    
    test=*#
    
     
  5. helli

    helli Neuer Benutzer

    Erst mal Danke. Solche Anleitungen habe ich schon gefunden, aber ich kann sie nicht auf mein Problem anwenden. Die automatisch kreierte aufgabennr soll eine neue Spalte mit Überschrift "a".aufgabennr ergeben.

    CREATE TRIGGER trig_neue_spalte
    AFTER INSERT ON aufgaben
    ....
    CREATE ON user
    ...

    irgendwie so müsste es aussehen, aber ich habe keine Ahnung, wie genau die Syntax ist.
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Das klingt so, als ob Du via TRIGGER dann eine neue Spalte erstellen willst, ja?

    Das mag vielleicht gehen, ist aber ein absolut eindeutiges Zeichen dafür, daß Du grundsätzlich etwas falsch machen willst. Merke: ändere nie die Tabellenstruktur, nur weil da ein Datensatz mehr in der Tabelle zu speichern ist.
     
  7. helli

    helli Neuer Benutzer

    Dann denke ich nochmals über meine Tabellenstruktur nach. Danke.
     
  8. ukulele

    ukulele Datenbank-Guru

    Ich glaube hier wird kein Trigger gesucht sondern eine klassischer Fremdschlüssel.

    Der Schüler hat eine Beziehung zu einer Aufgabe, eine Aufgabe kann sich auf mehrere Schüler beziehen. Ob das Sinn macht kann ich aber nicht sagen, das ist vermutlich nicht weit genug gedacht da mit Sicherheit ein Schüler auch mehr als eine Aufgabe bekommt.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden