Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка при создании триггера / 24 сообщений из 24, страница 1 из 1
06.07.2015, 15:24:21
    #39000630
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Добрый день
Нечаянно удалил из базы все триггеры на одну таблицу, DDL у меня есть,но при компиляции получаю ошибку.
Триггер:
Код: sql
1.
2.
3.
4.
5.
CREATE DEFINER = 'ukm_server'@'localhost' TRIGGER `local_auth_account_after_upd_tr` AFTER UPDATE ON `local_auth_account`
  FOR EACH ROW
BEGIN
    call wbn_setnotify('account',2,CONCAT('<p>{accId:'',NEW.id,'',accName:'',IFNULL(NEW.name,''),'',credit:'',IFNULL(NEW.credit,''),'',params:'',IFNULL(NEW.params,''),'',closed:'',IFNULL(DATE_FORMAT(NEW.closed,'%d.%m.%Y'),''),''}</p>'),concat('account_',NEW.id));
END;



Ошибка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%m.%Y'),''),''}</p>'),concat('account_',NEW.id));
END' at line 4
...
Рейтинг: 0 / 0
06.07.2015, 15:27:40
    #39000639
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Gallemar,

Собственно, подсветка синтаксиса уже должна дать вам ответ.
...
Рейтинг: 0 / 0
06.07.2015, 15:31:21
    #39000642
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoft,а можете подсказать,не силен в sql MySQL. Это DDL из копии базы
...
Рейтинг: 0 / 0
06.07.2015, 15:33:38
    #39000646
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Кавычки считай! можно даже на пальцах...
...
Рейтинг: 0 / 0
06.07.2015, 15:34:28
    #39000647
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Gallemarможете подсказатьМогу - красным цветом выделены строковые литералы. Посмотрите что в них попало и что не попало.
Большое подозрение вызывают пары кавычек. Похоже, что кавычки должны быть по одной штуке.
...
Рейтинг: 0 / 0
06.07.2015, 15:39:25
    #39000652
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoft,хм. А то что это из базы взято? Я думал если в DDL базы есть создание чего либо - оно будет создано,т.к. компиляция уже была как минимум раз выполнена.
...
Рейтинг: 0 / 0
06.07.2015, 15:46:30
    #39000662
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
GallemarА то что это из базы взято?Значит было "взято" неправильно.
...
Рейтинг: 0 / 0
06.07.2015, 15:49:38
    #39000668
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoft,копировал и выгружал из EMS, там есть функционал по выгрузке DDL отдельных элементов.
...
Рейтинг: 0 / 0
06.07.2015, 15:51:39
    #39000672
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Gallemarmiksoft,копировал и выгружал из EMS, там есть функционал по выгрузке DDL отдельных элементов.Возможно, в нем было что-то неправильно настроено. Тут не подскажу, не пользовался.
...
Рейтинг: 0 / 0
06.07.2015, 16:13:04
    #39000699
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoft,хм. А вы как DDL отдельных триггеров получаете?
...
Рейтинг: 0 / 0
06.07.2015, 16:31:41
    #39000711
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Gallemarmiksoft,хм. А вы как DDL отдельных триггеров получаете?
http://dev.mysql.com/doc/refman/5.6/en/show-create-trigger.html
...
Рейтинг: 0 / 0
06.07.2015, 16:49:05
    #39000729
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Gallemarmiksoft,хм. А вы как DDL отдельных триггеров получаете?А я их вообще не получаю.
У нас все такого рода вещи хранятся в SQL-скриптах с командами CREATE. В этих файлах смотрю, правлю, выполняю. Конечно, в сторонке есть резервные копии этих файлов.
...
Рейтинг: 0 / 0
06.07.2015, 16:56:52
    #39000736
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
спасибо,консоль меня спасла:)
...
Рейтинг: 0 / 0
06.07.2015, 17:16:14
    #39000754
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Код: sql
1.
2.
3.
4.
CREATE DEFINER=`ukm_server`@`localhost` TRIGGER `local_auth_account_after_upd_tr` AFTER UPDATE ON `local_auth_account` FOR EACH ROW BEGIN
    call wbn_setnotify('account',2,CONCAT('<p>{accId:''',NEW.id,''',accName:''',IFNULL(NEW.name,''),''',credit:''',IFNULL(NEW.credit,''),''',params:''',IFNULL(NEW.params,''),''',closed:''',IFNULL(DATE_FORMAT(NEW.closed,'%d.%m.%Y'),''),'''}</p>'),concat('account_',NEW.id));
END
 
...
Рейтинг: 0 / 0
06.07.2015, 17:16:55
    #39000756
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Явный косяк парсера EMS
...
Рейтинг: 0 / 0
06.07.2015, 17:20:21
    #39000763
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Gallemar
Код: sql
1.
2.
3.
4.
CREATE DEFINER=`ukm_server`@`localhost` TRIGGER `local_auth_account_after_upd_tr` AFTER UPDATE ON `local_auth_account` FOR EACH ROW BEGIN
    call wbn_setnotify('account',2,CONCAT('<p>{accId:''',NEW.id,''',accName:''',IFNULL(NEW.name,''),''',credit:''',IFNULL(NEW.credit,''),''',params:''',IFNULL(NEW.params,''),''',closed:''',IFNULL(DATE_FORMAT(NEW.closed,'%d.%m.%Y'),''),'''}</p>'),concat('account_',NEW.id));
END
 

Так тоже неверно, хотя и работоспособно, наверное.
Вместо тройных символов кавычек нужны одиночные.
...
Рейтинг: 0 / 0
06.07.2015, 17:21:35
    #39000765
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
GallemarЯвный косяк парсера EMSТаки посмотрите в его настройки. Возможно, там есть способ задать метод экранирования кавычек.
...
Рейтинг: 0 / 0
06.07.2015, 17:24:19
    #39000770
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoftТак тоже неверно, хотя и работоспособно, наверное.
Вместо тройных символов кавычек нужны одиночные.
Это из консоли mysql
...
Рейтинг: 0 / 0
06.07.2015, 17:36:05
    #39000786
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
GallemarmiksoftТак тоже неверно, хотя и работоспособно, наверное.
Вместо тройных символов кавычек нужны одиночные.
Это из консоли mysqlНу тогда я затрудняюсь объяснить затраивание кавычек. Возможно, оно было внесено еще на этапе создания триггеров.
...
Рейтинг: 0 / 0
07.07.2015, 13:57:36
    #39001437
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoftНу тогда я затрудняюсь объяснить затраивание кавычек.
Ну просто он значения ID и прочего оборачивает в кавычки при сборке строки.
...
Рейтинг: 0 / 0
07.07.2015, 23:03:00
    #39001856
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Dimitry SibiryakovmiksoftНу тогда я затрудняюсь объяснить затраивание кавычек.
Ну просто он значения ID и прочего оборачивает в кавычки при сборке строки.Не вижу этого в продемонстрированном тексте.
...
Рейтинг: 0 / 0
08.07.2015, 13:54:17
    #39002358
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
miksoftНе вижу этого в продемонстрированном тексте.
Код: sql
1.
CONCAT('<p>{accId:''',NEW.id,''',accName:''',IFNULL(NEW.name,''),''',credit:''',IFNULL(NEW.credit,''),''',params:''',IFNULL(NEW.params,''),''',closed:''',IFNULL(DATE_FORMAT(NEW.closed,'%d.%m.%Y'),''),'''}</p>')


Это - один вызов одной функции, которая в результате выдаст что-то такое:
Код: xml
1.
<p>{accId:'111',accName:'ффф',credit:'ыыы',params:'ввв',closed:'1.5.2015'}</p>
...
Рейтинг: 0 / 0
08.07.2015, 14:17:56
    #39002379
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
Dimitry SibiryakovmiksoftНе вижу этого в продемонстрированном тексте.
Код: sql
1.
CONCAT('<p>{accId:''',NEW.id,''',accName:''',IFNULL(NEW.name,''),''',credit:''',IFNULL(NEW.credit,''),''',params:''',IFNULL(NEW.params,''),''',closed:''',IFNULL(DATE_FORMAT(NEW.closed,'%d.%m.%Y'),''),'''}</p>')



Это - один вызов одной функции, которая в результате выдаст что-то такое:
Код: xml
1.
<p>{accId:'111',accName:'ффф',credit:'ыыы',params:'ввв',closed:'1.5.2015'}</p>

Это понятно. Только в этом я не вижу где "значения ID и прочего оборачивает в кавычки".
Я вижу только, что некоторые кавычки затроились, а некоторые нет, без никакой логики.
...
Рейтинг: 0 / 0
09.07.2015, 06:02:45
    #39003016
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при создании триггера
ТС, оборачивайте конкатенируемые значения двойными кавычками, а внутри лепите столько одинарных, сколько надо. Без лишних повторений.
Код: sql
1.
select concat("'preved',medved","'''","cccc''c'''''c'c'cc'")

Код: plaintext
'preved',medved'''cccc''c'''''c'c'cc'
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка при создании триггера / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]