0
Я создал триггер:MySQL Trigger: запрос внутри ошибки запроса для переменной котировки
DELIMITER $$
CREATE TRIGGER member_enrollment_update AFTER UPDATE ON memberships
FOR EACH ROW
BEGIN
INSERT INTO query_logs (QUERY,shop_id) VALUES ("update memberships set member_enrollment_status="+NEW.member_enrollment_status+" where card_no ='"+NEW.card_no+"'","LR00");
END $$
DELIMITER ;
где типа данных для столбцов:
member_enrollment_status int(1) DEFAULT 0 ,
card_no varchar(15) NOT NULL
, когда я выполняю обновление, исполняемая SQL является :
update memberships set member_enrollment_status= 1 where card_no=3678000022 and member_enrollment_status = 0
предупреждений являются:
1292 - Truncated incorrect DOUBLE value: '''
1292 - Truncated incorrect DOUBLE value: ' where card_no =''
1292 - Truncated incorrect DOUBLE value: 'update memberships set member_enrollment_status='
In query_logs table, record is inserted but getting only the card_no (3678000022) as value of QUERY column.
пожалуйста, помогите решить ошибку
Вы должны использовать функцию 'QUOTE()', чтобы обернуть столбцы, на которые вы ссылаетесь, при построении запросов с конкатенацией. Он правильно обрабатывает «NULL» (что в этом ответе, как написано, не имеет значения - пустой аргумент для 'CONCAT()' делает все выражение равным нулю), а также экранирование кавычек, обратных косых черт и т. Д. –