CONSTRAINT Feld automatisch befüllen

EuroCent

Klappstuhl 2.0
Hallo zusammen,

ich stehe wieder einmal auf dem Schlauch :D

Ich möchte vorerst per SQL eine Tabelle die 2 Contrains beinhaltet, eines davon automatisch befüllen.

Beispiel: Tabelle FlexTime hat id, name, oldTime und newTime
Contrains für id und name und mit Tabelle Mitglied verknüpft.

Wenn Ich nun beispielsweise id die ID aus Mitglied wähle, möchte Ich dass das Feld name, automatisch mit dem Feld aus Mitglied befüllt wird.

Allerdings scheitere Ich daran, da Ich keinen Dunst habe, wie dies funktioniert. :(

PS: Zusätzlich eine erweiterte Frage dazu:
Wie sieht es dann via PHP aus, wie müsse dies dann per MySQLi befüllt oder gesetzt werden?

Vielen lieben Dank :)
 
Hallo,
ich kann deiner Frage ehrlicherweise nicht ganz folgen. Mein erster Gedanke war, dass dir eventuell Joins weiterhelfen. Erklär mal bitte genau welche Tabellen du hast, wie sie im Zusammenhang stehen und was du gerne erreichen willst :)
 
Ich habe 2 Tabellen erstellt, zum einen Mitarbeiter und zum anderen Flexzeiten

Mitarbeiter hat 4 Felder: ID, Name, Zeitvon Zeitbis
Flexzeiten hat 4 Felder: ID, Name, Flexalt, Flexneu

In Flexzeiten habe Ich 2 Beziehungen erstellt, ID "UID" Cascade beide, Mitarbeiter.ID zugeordnet. Das selbe mit Name "Username", Ebenso Cascade und Mitarbeiter.Name zugeordnet.

Wenn Ich per phpMyAdmin auf Einfügen klicke, möchte Ich dass nur ein Feld "ID oder Name" ausgefüllt wird und ID oder Name entsprechend automatisch übernommen wird.

Später möchte Ich es dann via Formular nur noch über ID oder Name regeln, ohne dass Ich sämtliche Daten ggf. ausfüllen muss. :)

Mein Gedanke ist, es einfacher zugestalten als, alle Felder zu Definieren und diese dann zu befüllen.

Was Ich damit machen möchte, ist Arbeitszeiten messen und ggf. Gleitzeit auf/ab-Bau ermitteln.
Dafür ist die Tabelle Flexzeiten gedacht.

Ich kann zwar auch die Mitarbieiter Tabelle erweitern, jedoch habe Ich mit der Tabelle Flexzeiten noch etwas anderes vor, daher die extra Tabelle, was jedoch hier erstmal nicht zur Debatte stehen sollte :)
 
Leider bringt mysql sowas nicht mit.Vielleicht hilft dir folgendes:
SQL:
INSERT INTO Flexzeiten
(id,name,FLEXalt,flexneu)
SELECT id,name,'06:00','18:00' FROM Mitarbeiter WHERE id = 1;
 
Das ist leider nicht dass was Ich suche :(
Trotzdem vielen Dank :)

Mir geht es darum nicht via SQL-Statement, sondrn wenn Du im phpMyAdmin bist und einen neuen Eintrag in der Tabelle machen willst, quasi wie Formular.
Dort möchte Ich dass wenn Ich entweder ID oder Name auswähle er ID oder den Namen entsprechend ausfüllt.

Kann Dir gerne mal ein Screen machen was Ich meine, falls dir das Hilft :)
 
ich weiß schon was du meinst. Sowas gibts leider nicht für phpmyadmin oder einem anderem DB-Client (ich nutze liebe dbeaver) nicht. Mein Statement bezog sich auf deine zweite Frage.
 
Beispiel: Tabelle FlexTime hat id, name, oldTime und newTime
Contrains für id und name und mit Tabelle Mitglied verknüpft.

Wenn Ich nun beispielsweise id die ID aus Mitglied wähle, möchte Ich dass das Feld name, automatisch mit dem Feld aus Mitglied befüllt wird.
Gibt es einen genauen Grund, warum du das Feld name redundant in zwei Tabellen (entgegen Normalisierung) speichern möchtest, außer, dass PHPMyAdmin dir das dann anzeigt, ohne dass du einen JOIN formulieren musst? ;)

Wie ist denn die Beziehung von einem Mitglied zu seiner FlexTime? 1:1, 1:N, N:1? Eventuell brauchst du deine FlexTime-Tabelle bei 1:1 gar nicht.

Wenn du aber zwei Tabellen benötigst, dann würde ich Mitglied(id, name, ....) und FlexTime(id, mitglied[Mitglied] NOT NULL, oldTime, newTime) vorschlagen. Die FlexTime inklusive Mitgliedername bekommst du per SQL dann wie folgt:

SQL:
SELECT FlexTime.id, name, FlexTime.oldTime, FlexTime.NewTime
FROM
FlexTime
JOIN Mitglied ON FlexTime.mitglied = Mitglied.id
 
@Kalito
Achso dann hab Ich es falsch aufgefasst :)
Ich nutze HeidiSQL :D
DBeaver kenne Ich nicht, was ist denn da der Vorteil gegen über "Heidi" ;D

@ComFreek
Vorerst sieht es so aus als wäre es 1:1 :)
Ich könnte mit sicherheit auch in der FlexTime nur die ID belassen ohne Namen, dass ginge natürlich auch und wäre sicherlich konform.

Mit JOIN hab Ich schon gearbeitet, dachte dass es da auch als Funktion "phpMyAdmin" eine möglichkeit alá Funktionen/Verweis geht. :)

Die Beziehung beläuft sich auf ID und Name, wobei Ich mich entschieden habe Name in FlexTime nicht zu verwenden, da Ich mir den Name via JOIN entsprechend dann hole.
Vielen Dank für diesen Hinweis :)
 
DBeaver ist dem heidisql sehr ähnlich. Unterstützt aber mehr DB-Engins. Ist halt eines der wenigen kostenlosen, welches DB2 unterstützt.
 
Zurück