اذهب إلى المحتوى
  • 0

لاأستطيع إنشاء trigger في mysql

خالد مرتضى

السؤال

 عندما اقوم بانشاء trigger تظهر لي تلك الرسالة 

The following query has failed: "CREATE TRIGGER `on_comment` BEFORE INSERT ON `article_likers` FOR EACH ROW BEGIN update articles set likes=likes+1 where articles.id= NEW.article_id end"

MySQL said: #1064 - 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 'end' at line 3

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

أعتقد سبب المشكلة أنك في الحقيقة لا تستخدم mysql وإنما تستخدم mariadb 
إذا كنت تستخدم xampp فإعلم أن قاعدة البيانات الإفتراضية هي mariadb والتي تختلف قواعد كتابتها قليلًا عن قاعدة بيانات mysql ,لديك حلين

  1. أن تقوم بتحميل قاعدة بيانات mysql وتعمل عليها 
  2. الحل الأسهل أن تقوم بتغيير الكود حتى يكون مناسب مع mariadb كما في الشكل الآتي
CREATE TRIGGER `on_comment` BEFORE INSERT ON `article_likers` FOR EACH ROW update articles set likes=likes+1 where articles.id= NEW.article_id

حيث أن المشكلة تكمن في كلمتين BEGIN--END , عند إزالتهم ستلحظ أن الخطأ لم يعد موجودًا 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يبدوا أن لديك خطأ بسياق تعليمة الـ SQL , و لذلك سيجب إعادة صياغتها على نحو أدق و أصح . 

هلا قمت بتجربة هاته التعليمة بدلا من تلك التي لديك : 

CREATE TRIGGER `on_comment` BEFORE INSERT ON `article_likers` 
FOR EACH ROW 
BEGIN 
         UPDATE `articles` 
         SET `likes` = `likes` + 1 
         WHERE `id` = new.`article_id` 
END

( فلا حاجة لتحديد الجدول في aricles.id عند التعليمة WHERE ) 

يرجى التأكد أيضا من أن لديك جدولا بإسم article_likers 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...