Pomelo.entityframeworkcore.mysql: Cara menggunakan DELIMITER dalam pernyataan sql mentah

Dibuat pada 4 Sep 2019  ·  3Komentar  ·  Sumber: PomeloFoundation/Pomelo.EntityFrameworkCore.MySql

Saya ingin membuat pemicu menggunakan sql mentah,sql ini sebagai:

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 ;

Dieksekusi di mariadb tidak masalah, tetapi kueri sql mentah menggunakan inti EF akan melaporkan kesalahan DELIMITER, sebagai berikut

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

gunakan DELIMITER $$; sebagai kesalahan yang sama

Jadi, bagaimana cara Mengeksekusi sql mentah dengan DELIMITER atau alternatif apa?

Tolong , terima kasih

closed-question type-question

Semua 3 komentar

DELIMITER $$ adalah untuk MySQL Workbench. Dalam kode C#, cukup buat MySqlCommand dengan teks perintah lengkap dan jalankan:

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 $$ adalah untuk MySQL Workbench. Dalam kode C#, cukup buat MySqlCommand dengan teks perintah lengkap dan jalankan:

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

Terima kasih, ini sangat berguna bagi saya

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Toemsel picture Toemsel  ·  3Komentar

SharmaHarsh7 picture SharmaHarsh7  ·  4Komentar

a641545621 picture a641545621  ·  3Komentar

matthewjcooper picture matthewjcooper  ·  4Komentar

aramirezh-dev picture aramirezh-dev  ·  3Komentar