ich eine Datenbank mache, und ich habeErhalten von String-Attribut
CREATE TABLE reserva (
id_clinica NUMBER,
APOSITIVO DECIMAL(10,4),
ANEGATIVO DECIMAL(10,4),
BPOSITIVO DECIMAL(10,4),
BNEGATIVO DECIMAL(10,4),
ABPOSITIVO DECIMAL(10,4),
ABNEGATIVO DECIMAL(10,4),
OPOSITIVO DECIMAL(10,4),
ONEGATIVO DECIMAL(10,4),
);
CREATE TABLE donante (
dni_donante VARCHAR(9),
fecha_alta DATE,
movil VARCHAR(9),
nombre VARCHAR(20),
apellido1 VARCHAR(20),
apellido2 VARCHAR(20),
tipo_sangre VARCHAR(15),
);
In der Tabelle donante, das Attribut "tipo_sangre" immer "APOSITIVO", "ANEGATIVO", "BPOSITIVO", BNEGATIVO sein“ usw.
ich mag einen Trigger machen, dass, wenn eine Zeile auf einer anderen Tabelle einfügen, wird die „tipo_sangre“ von donante erhalten und eine Reihe in dem es correspondant Attribute der Tabelle reserva.
gibt es ein Möglichkeit, dies zu tun, außer eine Variable für tipo_sangre zu deklarieren und einen Schalter zu machen c Ase?
Vielen Dank im Voraus :)
uhm, deklarieren Sie lieber eine Tabelle mit jeder möglichen Blutgruppe und fügen Sie einfach einen Fremdschlüsselwert in Ihre Reserviertabelle für die korrekte Blutgruppe ein. – SomeJavaGuy
Ich denke 'CASE ... WANN ...' ist der Weg zu gehen. Theoretisch können Sie es mit dynamischen SQL tun, aber es ist IMO nicht wert. –
Erstens glaube ich nicht, dass dies wirklich eine gute Verwendung von Triggern ist. Zweitens scheint es, dass Ihre RESERVA-Tabelle nur eine laufende Zählung darüber führt, wie viele Vorkommen von etwas in einer dritten Tabelle existieren, die Sie nicht beschrieben haben. Wenn dem so ist, ist es im Allgemeinen ein schlechtes Design, Daten zu speichern, die "on demand" berechnet werden können und sollten. – EdStevens