Столбец идентификатора RedBean ORM

Есть ли способ вручную установить ID нового компонента с помощью RedBean PHP? Я храню кешированные данные из API, который генерирует ID каждой строки, и просто хотел бы использовать это ID для простоты.

Я читал другие потоки, в которых говорится, что нужно просто создать новый столбец (row_id) или что-то в этом роде, но я хотел бы просто использовать уникальный сгенерированный ID в качестве ID.


person alex-phillips    schedule 24.07.2015    source источник


Ответы (2)


Согласно документу MySQL

Для столбца AUTO_INCREMENT не было указано значение, поэтому MySQL автоматически присваивал порядковые номера. Вы также можете явно назначить 0 столбцу для генерации порядковых номеров. Если столбец объявлен NOT NULL, также можно присвоить столбцу NULL для генерации порядковых номеров. Когда вы вставляете любое другое значение в столбец AUTO_INCREMENT, для столбца устанавливается это значение, а последовательность сбрасывается таким образом, что следующее автоматически сгенерированное значение последовательно следует за наибольшим значением столбца.

Если это правда, в RedBean вы можете сделать что-то вроде

$post = R::dispense('post');
$post->id = 234;
R::store($post);

Я не проверял это, так как я устанавливаю столбец с автоматическим приращением в целое число по умолчанию 0, которое автоматически увеличивается.

person Ashish Nayyar    schedule 13.06.2016

Я сделал модифицированную версию redbean, она позволяет использовать другое поле для первичного ключа (с автоинкрементом) https://github.com/freelanceniek/redbeanx

person Niek    schedule 29.06.2017