Pomelo.entityframeworkcore.mysql: كيفية استخدام DELIMITER في جمل SQL الأولية

تم إنشاؤها على ٤ سبتمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: PomeloFoundation/Pomelo.EntityFrameworkCore.MySql

أريد إنشاء مشغل باستخدام خام 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 ليس مشكلة ، لكن استعلام sql الخام باستخدام EF core سيبلغ عن خطأ 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 $$; كخطأ واحد

إذن ، كيف يتم تنفيذ SQL raw باستخدام DELIMITER أو ما هي البدائل؟

ارجوك شكرا!

closed-question type-question

ال 3 كومينتر

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();
}

شكرا لك ، هذا مفيد جدا بالنسبة لي。 非常 感谢!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات