Как doctrine увеличивает первичный ключ?

#php #mysql #doctrine

#php #mysql #doctrine

Вопрос:

У меня была проблема с doctrine, которую я решил, но я хотел бы знать причину проблемы. Я пытался вставить новый регистр, но doctrine пыталась вставить идентификатор, который уже существует, каждый раз, когда я пытался, идентификатор, который doctrine пыталась вставить, увеличивался на единицу, я пытался, поскольку идентификатор увеличивается до первого идентификатора, которого не существует в таблице

         $result = $storage->executeSQL($query);

        $updated_answer = new SurveyDatabaseAnswer();
        if (!empty($result))
            $updated_answer->setId($result[0]);

        $updated_answer->setClient($client);
        $updated_answer->setSurvey($survey);
        $updated_answer->setAnswer($answer);
        empty($result) ? $storage->persist($updated_answer) : $storage->merge($updated_answer);
        $storage->flush();
  

Как doctrine's генератор идентификаторов или что угодно… работает так, как это вызвало мою проблему??

Комментарии:

1. Это должно обрабатываться базой данных, а не кодом. Установлен ли ваш id столбец в качестве первичного ключа и с автоматическим увеличением?

2. вы удаляете строки в то же время?

3. да, столбец установлен в качестве первичного ключа с автоинкрементом, и я тем временем не удалял строки