Доктрина: явное указание значения первичного ключа без изменения автоматического приращения.Php

Кемеровские программисты php общаются здесь
Anonymous
Доктрина: явное указание значения первичного ключа без изменения автоматического приращения.

Сообщение Anonymous »

Существует таблица со многими столбцами, а также столбцом первичного ключа 'id', имеющим атрибут автоматического увеличения.
База данных — MySQL.

Существует два типа кода PHP, которые вставляются в этот столбец.
1.) Обычные запросы на вставку создаются как строка и выполняются путем подключения ADO к базе данных. В этом случае значение первичного ключа не предоставляется, поэтому используется значение автоматического увеличения таблицы.

2.) Существует класс сущности доктрины php Symfony с основным полем, объявленным как

Код: Выделить всё

/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
*/
private $id;
При вставке используется метод persist менеджера сущностей.
Здесь при вставке значение id явно указывается, которое намного превышает значение автоматического приращения столбца. Вот почему Generation_Type опущен в аннотациях.

Теперь предположим, что текущее значение auto_increment равно 10000.
Я хочу, чтобы при выполнении первого сценария следующий идентификатор принимался как 1001, что и ожидалось.
Но в случае выполнения второго сценария с явным идентификатором = 2000 он вставляет запись с 2000, но не меняет auto_increment на 2000. Оно все равно должно оставаться равным 1001.

Нужно ли мне вносить изменения в этот фрагмент кода?

Код: Выделить всё

$this->em->persist(obj);
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/554 ... uto-increm

Вернуться в «Php»