Как изменить auto_increment mysql-таблицы с помощью Doctrine - PullRequest
0 голосов
/ 16 июня 2010

вопрос говорит сам за себя :-) Каков наилучший способ выполнить запрос, например:

ALTER TABLE tablename AUTO_INCREMENT = 1;

с использованием Doctrine?

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Боюсь, вам придется просто выполнить запрос как обычно изнутри PHP, поскольку это не то, что Doctrine поддерживает.

Обратите внимание, что если вы запустите ALTER TABLE tablename AUTO_INCREMENT = 1;, то следующее значение будет самым высоким в настоящее время в таблице + 1. Вы явно не устанавливаете значение 1, если в таблице уже есть записи.

0 голосов
/ 16 июня 2010

Вы пытаетесь манипулировать значением автоинкремента вашей таблицы?Если вы хотите сделать это, вы МОЖЕТЕ сделать

SET @@auto_increment_increment=10;

Имейте в виду, что это системная переменная, которая повлияет на ВСЕ таблицы.

Как правило, я не рекомендую вам манипулироватьспособ генерации первичного ключа (я просто предполагаю, что это).

Если вам нужно задать пользовательское значение, скажем, i * 10, вы можете написать триггер / функцию, которая выполняет эту работу, или более просто., вы можете создать представление, которое предоставит вам последний вставленный идентификатор (скажем, 150) и добавит к нему ваше значение (например, 10), чтобы вы могли получить 160.

Сама доктрина этого не поддерживает (насколько язнаю) и это хорошо на мой взгляд.Если вам нужно установить различные приращения для первичных ключей, PostgreSWL и Oracale, например, могут это сделать, поскольку они используют последовательности для генерации ключей, которыми может манипулировать dev

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...