Проблема с импортом таблицы MariaDB с триггером BEFORE INSERT - PullRequest
0 голосов
/ 16 июня 2020

Я изо всех сил пытаюсь найти простое решение для импорта таблицы с триггером «до вставки». При импорте таблицы триггер срабатывает для каждой импортируемой строки, вызывая в таблице c хаво.

Этот триггер должен создавать инкрементный уникальный идентификатор каждый раз, когда мы создаем новую строку (это идея типа "yy_mm_dd" .incremental_integer_for_the_day, и я не нашел другого способа заставить MariaDB создать его).

Есть ли лучший способ, чем удаление триггера в экспортирующей и получающей базах данных, импорт, а затем воссоздание вручную триггера ???

Спасибо! Е.

1 Ответ

0 голосов
/ 16 июня 2020

Большое спасибо!

Да, это сработает, если я вручную отредактирую файл экспорта, чтобы переместить триггеры создания после вставки строк, оставив триггер отбрасывания там, где он есть (то есть перед строками для импорта). Итак, это решение, хотя оно требует некоторого ручного редактирования с помощью моего SQL программного обеспечения (Querious), которое генерирует сценарий экспорта с триггерами в начале.

И ваше предложение создать два столбца, один с дата и другой с инкрементом могут быть одним для изучения. Хотя, поскольку я должен сбрасывать приращение каждый период (день в моем примере), для этого все равно потребуется другой триггер или какой-то код PHP.

То, что я хотел избежать с помощью триггера, было sql запрос на получение максимального (ID), увеличения его (или в вашем втором решении max (дата) и max (id в периоде), проверьте, была ли первая строка дня, затем сброшена на 1 или увеличена) и другой запрос на сохранить значение идентификатора ...

Кажется, нет способа отключить триггеры во время импорта, так как есть отключить проверку внешнего ключа.

E.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...