У меня возникли трудности с синтаксисом триггера в моей базе данных magento.MySQL Триггер с вложенными операциями select
Я хочу обновить значение в таблице клиентов при создании нового адреса.
В таблице customer_address_entity_varchar выглядит следующим образом:
value_id | entity_type_id | attribute_id | entity_id | value
48 | 2 | 28 | 3 | Lancashire
Когда я делаю курок без вложенной отборных заявления он работает, так что:
IF (new.attribute_id=28) THEN
UPDATE customer_entity SET customer_entity.group_id = 4
WHERE customer_entity.entity_id = 1
END IF;
Я пытаюсь использовать new.entity_id и новый . значение для выбора значений из других таблиц для замены 4 и 1:
DROP TRIGGER IF EXISTS `groupid_update`;
CREATE DEFINER=`rock_store`@`localhost` TRIGGER `groupid_update`
AFTER INSERT ON `customer_address_entity_varchar`
FOR EACH ROW
IF (new.attribute_id = 28) THEN
UPDATE customer_entity
SET customer_entity.group_id = (
SELECT directory_country_region_name.customer_group_id
FROM directory_country_region_name
WHERE directory_country_region_name.name = "'" + new.value + "'")
WHERE customer_entity.entity_id = (
SELECT customer_address_entity.parent_id
FROM customer_address_entity
WHERE customer_address_entity.entity_id = new.entity_id);
END IF;
Создание триггера в MySQL успешно, но когда я пытаюсь добавить новый адрес в Magento, я получаю сообщение об ошибке, которое ничего мне не говорит.
Благодарим за помощь. Liam