Ich versuche, eine Möglichkeit zu finden, den Einheitencode für jedes neue Einheitenprodukt zu aktualisieren, aber den ursprünglichen Einheitencode für bereits erstellte Einheitenprodukte beizubehalten.
Das heißt, wenn sich der Einheitencode zwischen den bereitgestellten Themen ändert, möchte ich, dass der Einheitencode den genauen Code zum Zeitpunkt der Erstellung des Einheitskurses widerspiegelt.
Das ist mein Formular
CREATE TABLE Units ( UnitsID INT(10) AUTO_INCREMENT, UnitsName VARCHAR(255) NOT NULL, UnitsCode VARCHAR(20) NOT NULL UNIQUE, PRIMARY KEY (UnitsID) ); CREATE TABLE UnitsOffering ( UOfferingID INT(10) AUTO_INCREMENT, UOUnits INT(10) NOT NULL, YIIntake VARCHAR(255) NOT NULL, YIYear INT(4) NOT NULL, PRIMARY KEY (UOfferingID), FOREIGN KEY (UOUnits) REFERENCES Units(UnitsID) );
Ich kann es mit der aktuellen gespeicherten Prozedur aktualisieren, aber wenn ich die Einheitenprodukte und Einheitendetails aufliste, spiegelt es den neuen Einheitencode wider, nicht den Code, der in der Datenbank war, als das Produkt erstellt wurde.
CREATE PROCEDURE UpdateUnit(IN vUnitsID VARCHAR (255), IN vUnitsCode VARCHAR (20)) BEGIN UPDATE Units SET UnitsCode = vUnitsCode WHERE UnitsID = vUnitsID; END;
Dies ist die Select-Anweisung, die ich beim Erstellen der Liste verwende.
SELECT O.UOfferingID, U.UnitsCode, U.UnitsName, O.YIIntake, O.YIYear FROM (UnitsOffering O INNER JOIN Units U ON O.UOUnits = U.UnitsID) ORDER BY O.UOfferingID;
Ich bin mir nicht sicher, ob das tatsächlich möglich ist. Wenn das Sinn macht, bin ich mir nicht sicher, ob etwas mit der Einrichtung meiner Tabelle, der Update-Anweisung oder der List-Anweisung nicht stimmt.
Jede Hilfe wäre sehr dankbar. Ich habe versucht, in der Dokumentation nachzuschauen, wie das geht, konnte aber nicht das richtige Schlüsselwort finden.
Hier sind Beispiele dessen, was ich gerne auflisten könnte. In diesem Beispiel möchte ich, was angezeigt werden soll, wenn sich der Einheitencode nach Ende des Jahres 2021 ändert.
COS10000 - Introduction to Programming - Semester 2 2021 INF30011 - Database Implementation - Semester 1 2022 COS10059 - Introduction to Programming - Semester 2 2022
有两种可能的方法: