์์ SQL์ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค๊ณ ์ถ์ต๋๋ค.์ด SQL์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
DELIMITER $$
CREATE OR REPLACE TRIGGER platformdb.trig_updatevehiclekilometer
AFTER UPDATE ON platformdb.VehicleTravels FOR EACH ROW
BEGIN
UPDATE Vehicles SET TotalKilometers=new.Kilometers WHERE ID=new.VehicleId;
END$$
DELIMITER ;
mariadb์์ ์คํํด๋ ๋ฌธ์ ๊ฐ ์์ง๋ง EF ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ ์์ SQL ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด DELIMITER ์ค๋ฅ๋ฅผ๋ณด๊ณ ํฉ๋๋ค.
MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER $$ CREATE OR REPLACE TRIGGER platformdb.trig_updatevehiclekilometer A' at line 1 ---> MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER $$ CREATE OR REPLACE TRIGGER platformdb.trig_updatevehiclekilometer A' at line 1
DELIMITER $$;
๋ฅผ ๋์ผํ ์ค๋ฅ๋ก ์ฌ์ฉ
๊ทธ๋ ๋ค๋ฉด DELIMITER
์์ SQL์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
๊ฐ์ฌํฉ๋๋ค!
DELIMITER $$
๋ MySQL Workbench ์ฉ์
๋๋ค. C # ์ฝ๋์์ ์ ์ฒด ๋ช
๋ น ํ
์คํธ๋ก MySqlCommand
๋ฅผ ๋ง๋ค๊ณ ์คํํฉ๋๋ค.
using (var command = new MySqlCommand(@"CREATE OR REPLACE TRIGGER platformdb.trig_updatevehiclekilometer
AFTER UPDATE ON platformdb.VehicleTravels FOR EACH ROW
BEGIN
UPDATE Vehicles SET TotalKilometers=new.Kilometers WHERE ID=new.VehicleId;
END", connection))
{
command.ExecuteNonQuery();
}
DELIMITER $$
๋ MySQL Workbench ์ฉ์ ๋๋ค. C # ์ฝ๋์์ ์ ์ฒด ๋ช ๋ น ํ ์คํธ๋กMySqlCommand
๋ฅผ ๋ง๋ค๊ณ ์คํํฉ๋๋ค.using (var command = new MySqlCommand(@"CREATE OR REPLACE TRIGGER platformdb.trig_updatevehiclekilometer AFTER UPDATE ON platformdb.VehicleTravels FOR EACH ROW BEGIN UPDATE Vehicles SET TotalKilometers=new.Kilometers WHERE ID=new.VehicleId; END", connection)) { command.ExecuteNonQuery(); }
๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ์ ์๊ฒ ๋งค์ฐ ์ ์ฉํฉ๋๋คใ ้ๅธธ ๆ่ฐข๏ผ