Witam.
Z kolegami mamy projekt do zrobienia. Wybraliśmy prostą gierkę typu RPG.
W bazie chce ustawic trigger, że jeśli ktoś ma bron dwureczną, bron dodatkowa jakaby nie była zostanie ustawiona na NULL (to jest referencja zostanie ustawiona na NULL).
Oto tabele potrzebne do wykonania tego triggeru
Create table MainWeapons(
IDMainWeapon INT (4) PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR (20) NOT NULL,
Attack INT (3) NOT NULL,
Type INT(2) NOT NULL
);
Create table AdditionalWeapons(
IDAdditionalWeapon INT (4) PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR (20),
Attack INT (3)
);
Create table Inventory(
IDInventory INT (5) PRIMARY KEY AUTO_INCREMENT NULL,
IDInventory_MainWeapon INT (4) NOT NULL,
IDInventory_AdditionalWeapon INT (4),
FOREIGN KEY (IDInventory_MainWeapon) REFERENCES MainWeapons(IDMainWeapon),
FOREIGN KEY (IDInventory_AdditionalWeapon) REFERENCES AdditionalWeapons(IDAdditionalWeapon),
);
I trigger robię tak:
DELIMITER $$
CREATE TRIGGER Check_Possible_MainWeapon_Inventory
AFTER INSERT ON Inventory FOR EACH ROW
BEGIN
Declare x INT (2);
Set x = (SELECT Type FROM Inventory JOIN MainWeapons ON Inventory.IDInventory_MainWeapon = MainWeapons.IDMainWeapon);
IF x == 2
THEN
New.IDInventory_AdditionalWeapon = NULL;
END IF;
END;
$$
Ale wywala mi błąd i nie jestem w stanie dojść do rozwiązania problemu.
Wielkie dzięki z góry jeśli ktos pomoże!
BTW wykorzystuje MySql.
Pozdrawiam.