Я попытался вставить данные в 2 таблицы, где table2 не имеет первичного ключа, но только зарубежные:выбрать последний идентификатор возвращается тот же результат для нескольких запросов
insert into table1 ....;
insert into table2 (a, column2, c) values(1, (select id from table1 order by inserted_at desc limit 1), 33);
insert into table1 ....;
insert into table2 (a, column2, c) values(1, (select id from table1 order by inserted_at desc limit 1), 33);
insert into table1 ....;
insert into table2 (a, column2, c) values(1, (select id from table1 order by inserted_at desc limit 1), 33);
, и я закончил с тем же идентификатором в table2
для column2
во всех 3 запросах. Почему и как я мог это исправить?
Вы уверены, что вы не вставляют подобные данные в 'table1' во все 3 итерации? Очень сложно понять, если вы не дадите точные инструкции вставки для 'table1' и объясните, как в них используется« insert_at ». Я предполагаю, что вы вставляете sysdate в это, но без вставных операторов, мы можем только догадываться. – Utsav
Используйте последовательную колонку. Не вычисляйте идентификаторы самостоятельно - база данных делает это для вас. –
@ GordonLinoff, я этого не делаю. – Johshi