我正在嘗試找到一種方法,能夠更新任何新單位產品的單位代碼,但保留已建立的單位產品的原始單位代碼。
即,如果單元程式碼在提供的主題之間發生變化,我希望單元程式碼能夠反映建立單元課程時的準確程式碼。
這是我的表格
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) );
我可以使用當前的預存程序對其進行更新,但是當我列出單位產品和單位詳細資訊時,它反映的是新的單位代碼,而不是創建產品時資料庫中的代碼。
CREATE PROCEDURE UpdateUnit(IN vUnitsID VARCHAR (255), IN vUnitsCode VARCHAR (20)) BEGIN UPDATE Units SET UnitsCode = vUnitsCode WHERE UnitsID = vUnitsID; END;
這是我在建立清單時使用的選擇語句。
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;
我不確定這是否真的可以做到。如果可以的話,我不確定我的表設定方式、更新語句或列表語句是否有問題。
任何幫助將不勝感激。我嘗試查看一些文件來了解如何做到這一點,但找不到正確的關鍵字。
下面是我希望能夠列出的範例。對於此範例,如果 2021 年結束後單元程式碼發生更改,我希望它顯示的內容。
COS10000 - Introduction to Programming - Semester 2 2021 INF30011 - Database Implementation - Semester 1 2022 COS10059 - Introduction to Programming - Semester 2 2022
有兩種可能的方法: