У меня возникают проблемы с триггерами mysql, задающими значения первичного ключа. Рассмотрим мои таблицы:Чтение и запись значений автоинкремента из триггера
v_object: v_object_id, create_date, .. некоторые общие атрибуты
пользователи: user_id, имя, .. атрибуты пользователя
У меня есть триггер на таблицу пользователей следующим образом :
create trigger new_vobject_for_user before insert on users
for each row begin
insert into v_object(v_type,...) values(...);
set NEW.id = // How do i get the new v_object's id here?
end;
Когда я вставить пользователь, мне нужен vobject создал и использовать свое новое авто увеличивается значение для user_id.
Я также хотел бы знать, есть ли способ вставить пользователей без указания идентификатора. Например:
insert into users(n1,n2,n3,...) values(m1,m2,m3,...);
Это дает мне сообщение о том, что user_id не указан. И это правда .. то, что я пытаюсь сделать, это создать vobject & сгенерировать идентификатор в триггере.
Если вы не можете пропустить 'user_id' в операторе INSERT, то это не столбец автоинкремент. –
user_id не является автоматическим приращением .. его просто pk таблицы пользователей. Идентификатор vobject является автоматическим приращением –
Тогда я не понимаю эту часть вопроса. Что вы хотите, чтобы MySQL работал с 'users.user_id', когда вы не устанавливаете явное значение? –