Есть таблица объектов, в которой есть поля id (PRIMARY, AUTO_INCREMENT) и related_to (отношение)
По умолчанию каждый объект должен относится к самому себе (чтобы при выборе основного объекта можно было получить все относящиеся к нему объекты, включая его самого).
В интернете нашел пример триггера BEFORE INSERT:
IF NEW.related_to = 0 THEN
SET NEW.related_to = last_insert_id()+1 ;
END IF
Но этот код все время устанавливает related_to в 1, то есть last_insert_id() возвращает 0. Читал, что это может быть из-за того, что при каждом запросе создается новое соединение и last_insert_id обнуляется, но использование постоянного соединения не рекомендуется, и также не решает проблемы, когда объекты добавляют разные люди с разными соединениями (у каждого будет идти свой счетчик last_insert_id).
Хотя может быть я неправильно понимаю и постоянное соединение создается для самих скриптов, в таком случае проблема должны вроде как решиться, но у меня происходит что-то странное и вставляются левые id (id записей, вставляемых в другие таблицы одновременно с этой записью)