рдореИрдВ рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрдЪреНрдЪреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЗрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ)
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 ;
рдорд╛рд░рд┐рдпрд╛рдбрдм рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдИрдПрдл рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрдЪреНрдЪреА рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдПрдХ 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
рд╕рд╛рде рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдХреМрди рд╕реЗ рд╡рд┐рдХрд▓реНрдк?
рдХреГрдкрдпрд╛я╝МрдзрдиреНрдпрд╡рд╛рджя╝Б
DELIMITER $$
MySQL рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реА # рдХреЛрдб рдореЗрдВ, рдкреВрд░реНрдг рдХрдорд╛рдВрдб рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдмрд╕ 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();
}
https://github.com/mysql-net/MySqlConnector/issues/645 рджреЗрдЦреЗрдВ
DELIMITER $$
MySQL рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реА # рдХреЛрдб рдореЗрдВ, рдкреВрд░реНрдг рдХрдорд╛рдВрдб рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдмрд╕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(); }
рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИуАВщЭЮх╕╕цДЯш░вя╝Б