powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / set new в After Insert триггера
9 сообщений из 9, страница 1 из 1
set new в After Insert триггера
    #38795051
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Озадачился таким вопросом.
Мне надо получить после вставки некое значение, привязанное к полю с автоинкрементом.

Код: sql
1.
2.
3.
4.
-- Триггер After Insert
BEGIN
	set new.test_name = concat('Fields',new.test_id);
END



Выдает ошибку "Updating of NEW row is not allowed in after trigger"

В before триггера такая конструкция работает, но test_id еще не получен, и как быть?
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795121
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miv32,

Именно получить - как и написано, в триггере After Insert. А вот присвоить в new.поле - никак.
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795150
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой практический смысл в том, чтобы другое поле было равно константа + айди?
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795184
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453а какой практический смысл в том, чтобы другое поле было равно константа + айди?Например, принятый в организации формат нумерации документов
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795250
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Именно! :) miksoft как всегда прав.
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795495
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miv32Именно! :) miksoft как всегда прав.

не неугадали оба...

у меня на фре лежат файлы - документы, и называны по номеру самого документа

А123Р скажем... но мне в голову не пришло брать вкачестве числа между буквами инод файла(аналог примарикея в базе)

ЗЫ
если миксофт так щитает,возми снего слово, что когда надо будет добавить новые типы документов, каждый со своей независимой нумерацией а в текущую архитектуру ты это никак не воткнёшь - то он тебе сам будет делать новые таблицы на каждый тип и писать многотабличный поиск по документам
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795516
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453новые типы документовА кто сказал, что будут другие типы документов?
Например, заказы на условном сайте вполне могут нумероваться чем-то вида "ИМ-1235/2014". А цифры 12345 вполне могут быть первичным ключом или последними пятью цифрами из него. А суффикс /2014 может меняться от года к году. И на этом условном сайте совершенно нет необходимости пихать еще какие-то документы в таблицу заказов.
alex564657498765453брать вкачестве числа между буквами инод файла(аналог примарикея в базе)Инод файла не является полным аналогом первичного ключа. Как минимум, иноды могут выдаваться не по порядку. И, если не ошибаюсь, могут быть неуникальны.

alex564657498765453не неугадали оба...Я, кстати, не гадал. Информация из практики.
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795623
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftalex564657498765453новые типы документовА кто сказал, что будут другие типы документов?
Например, заказы на условном сайте вполне могут нумероваться чем-то вида "ИМ-1235/2014". А цифры 12345 вполне могут быть первичным ключом или последними пятью цифрами из него. А суффикс /2014 может меняться от года к году. И на этом условном сайте совершенно нет необходимости пихать еще какие-то документы в таблицу заказов.
alex564657498765453брать вкачестве числа между буквами инод файла(аналог примарикея в базе)Инод файла не является полным аналогом первичного ключа. Как минимум, иноды могут выдаваться не по порядку. И, если не ошибаюсь, могут быть неуникальны.

alex564657498765453не неугадали оба...Я, кстати, не гадал. Информация из практики.

инод таки уникальный, и примарикеи тоже могут выдаваться не по порядку. полная аналогия - системный идентификатор, который уникальный для определёного времени, но в процесе работы может меняться со временем...

да понятно что можно... любые данные вносимые в базу можно преобразовать в уникальный значение, и использовать это вкачестве примари кея - но зачем?

если есть общее правило которое работает всегда - на примари кея не ложить никакой другой логики, кроме как идентификатор для записи в базе. ибо рано или позно, понадобиться разделить.

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

все можно делать - лишь бы работало. но не нужно абы ставить вкачестве ориентира!
...
Рейтинг: 0 / 0
set new в After Insert триггера
    #38795630
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miv32Мне надо получить после вставки некое значение, привязанное к полю с автоинкрементом.Нафига? получайте его в запросе именно в момент, когда оно потребовалось.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / set new в After Insert триггера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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