Я новичок в MySQL
PHP
WAMP
, мой триггер успешно создан без если заявление, он дает ошибку, когда я исполню ее ошибка:Триггеры Если ошибка синтаксиса оператор
1064 - У Вас есть ошибка в вашем SQL синтаксис; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи «IF (NEW.userloc_lat = '91 0,000000» И NEW.userloc_lan = «181,000000») THEN 'в строке 6
DELIMITER $$
CREATE TRIGGER before_new_userloc
BEFORE INSERT ON tbl_userloc
FOR EACH ROW BEGIN
INSERT INTO tbl_unknown_site
IF (NEW.userloc_lat ='91.000000' AND NEW.userloc_lan = '181.000000')
THEN SET
unknown_site_lat = NEW.userloc_lat,
unknown_site_lon = NEW.userloc_lon,
unknown_site_stt = NOW(),
unknown_site_dtm = NEW.userloc_dtm,
unknown_site_appid = NEW.userloc_appid,
unknown_site_cellid = NEW.userloc_cellid,
unknown_site_lacid = NEW.userloc_lacid,
unknown_site_subid = NEW.userloc_id;
END$$
DELIMITER ;
Я думаю, что будет только синтаксическая ошибка, на которую я смотрю.
Тип данных userloc_lat
и userloc_lon
является decimal(10,6)
это дает ошибку # 1054 - Неизвестный столбца 'userloc_lan' в 'NEW', если я удалить NEW от того, что вы сказали, что он говорит во вставке # 1054 - Неизвестный столбец userloc_lat в списке полей. Я думаю, что это не узнает – Sarz
У вас есть опечатка. 'userloc_lan' должен быть' userloc_lon'. – Barmar
Спасибо, что работает! – Sarz