เกิดอะไรขึ้นกับทริกเกอร์นี้? หลังจากแทรกการอัปเดต

ฉันมีปัญหากับทริกเกอร์อย่างง่ายบน MySQL

DELIMITER $$
CREATE TRIGGER cust_tracer
AFTER INSERT ON custom_values 
FOR EACH ROW
BEGIN
  UPDATE 'custom_values' set 

  (VALUE = CONCAT('https://tracker.123e33.eu/view.php?id=', VALUE))
  where custom_field_id=84;

  END$$

VALUE คือคอลัมน์ในตาราง custom_values ​​ที่ชื่อว่า VALUE

ฉันได้รับข้อผิดพลาดต่อไปนี้:

#1,064 - คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ ''custom_values' set
VALUE = CONCAT('https://tracker.123e33.eu/view.php?id=' ที่บรรทัด


person Artur Stolc    schedule 26.04.2019    source แหล่งที่มา
comment
ลบวงเล็บรอบงานออก   -  person sticky bit    schedule 26.04.2019
comment
คุณควรระบุปัญหาที่แน่นอนที่คุณพบ   -  person sticky bit    schedule 26.04.2019
comment
#1,064 - คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อหาไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ ''custom_values' set VALUE = CONCAT('tracker.123e33.eu/view.php?id=' ที่บรรทัด   -  person Artur Stolc    schedule 26.04.2019
comment
ไม่ได้อยู่ในความคิดเห็น แก้ไขคำถามของคุณและเพิ่มข้อมูลที่นั่น   -  person sticky bit    schedule 26.04.2019
comment
และลบเครื่องหมายคำพูดเดี่ยวรอบชื่อตาราง   -  person sticky bit    schedule 26.04.2019
comment
คุณไม่สามารถดำเนินการกับตารางที่ทำให้ทริกเกอร์เริ่มทำงาน ในทริกเกอร์ได้ ดูเหมือนว่าควรจะเป็นทริกเกอร์ before insert ที่คุณสามารถแก้ไข NEW ได้ ค่านิยม   -  person P.Salmon    schedule 26.04.2019
comment
และตัวเหนี่ยวไกก็ดูแปลกสำหรับฉัน ทุกครั้งที่คุณแทรกแถวใหม่ลงในตารางคุณต้องการให้คอลัมน์ของหนึ่งแถวนำหน้าด้วยส่วน URL นั้นหรือไม่ หลังจากนั้นไม่นานค่านั้นก็จะมีคำนำหน้านั้นหลายครั้ง นั่นคือสิ่งที่คุณต้องการบรรลุจริงหรือ?   -  person sticky bit    schedule 26.04.2019
comment
ใช่ค่านั้นง่าย: 133214 ผลลัพธ์จะเป็น tracker.123e33.eu/view.php?id=133214 ซึ่งจะเป็นลิงก์ url :)   -  person Artur Stolc    schedule 26.04.2019
comment
และหลังจากการแทรกครั้งต่อไปจะเป็น tracker.123e33.eu/view.php?id=tracker.123e33.eu/view.php?id=133214   -  person sticky bit    schedule 26.04.2019
comment
หลังจากใส่ ?? ขณะนี้มีการแทรกหรืออัปเดต   -  person Artur Stolc    schedule 26.04.2019


คำตอบ (1)


การลบเครื่องหมายวงเล็บรอบคำสั่ง SET จะช่วยแก้ปัญหาได้

บล็อกแบบสอบถามจะเป็น:

BEGIN
   UPDATE `custom_values` SET
   VALUE = CONCAT('https://tracker.123e33.eu/view.php?id=', VALUE)
   WHERE custom_field_id = 84;
END$$
person Arulkumar    schedule 26.04.2019
comment
ยังคง: #1064 - คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อดูไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ ''custom_values' set VALUE = CONCAT('tracker.123e33.eu/view.php? ที่บรรทัด 5 - person Artur Stolc; 26.04.2019
comment
@ArturStolc คุณลองเป็น UPDATE `custom_values` SET หรือ UPDATE custom_values SET แล้วหรือยัง - person Arulkumar; 26.04.2019
comment
ใช่ ตอนนี้ฉันมี DELIMITER $$ CREATE TRIGGER cust_tracer AFTER INSERT ON custom_values ​​FOR EACH ROW BEGIN UPDATE easy.custom_values ​​set VALUE = CONCAT('tracker.123e33.eu/view.php?id=', VALUE) โดยที่ easy.custom_field_id=84; END$$ #1064 - คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ ตรวจสอบคู่มือที่สอดคล้องกับเวอร์ชันเซิร์ฟเวอร์ MySQL ของคุณเพื่อดูไวยากรณ์ที่ถูกต้องเพื่อใช้ใกล้กับ '' ที่บรรทัด 8 - person Artur Stolc; 26.04.2019