Триггер для переустановки автоматического приращения таблиц в phpMyadmin - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть база данных, tvguide, и это значения:

id bigint 255 UNSIGNED AUTO_INCREMENT
programme varchar 255 
default value (which is from another table
with list of programs, the only linked field that
is shared with other table):<b><a href="gossipgirl.php">Gossip Girl</a></b>
channel varchar 255
airdate DATETIME - actual airtime
displayair DATETIME (rounded-up datetime, e.g. programme that airs 1.59pm 
would be shown as 2.00pm, or 6.08pm as 6.10pm)
expiration DATETIME - when program finishes
episode VARCHAR 255 NULL - has null option if episode unknown
series VARCHAR 255
epno VARCHAR 255 - episode number
setreminder VARCHAR255 (shows "set reminder", sends email to user, but that's 
another thing to work on).

Я хочу вставить триггер в свою базу данных, чтобы при удалении записи автоматическое увеличение идентификатора автоматически сбрасывалось?

Есть идеи, как этого добиться? До сих пор я делал это вручную, но смотрю, что я могу сделать с phpMyadmin, когда удаляю запись.

Кстати, я сделал копию таблицы для целей резервного копирования.

Спасибо

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Я согласен с комментарием whitstone86, что вы можете просто "позволить ему расти".

Сказав это, чтобы изменить AUTO_INCREMENT в любое время, вы можете просто запустить ALTER TABLE.

Некоторый псевдокод ...

SELECT MAX(id)+1 AS max_id_plus_one FROM my_table;

ALTER TABLE my_table AUTO_INCREMENT = $max_id_plus_one;

Для производства, условия гонки могут быть проблемой.Однако, если вы просто возитесь с phpmyadmin, этого должно быть достаточно.

0 голосов
/ 12 декабря 2014

Это довольно опасная идея.

Пусть это будет расти, этого не произойдет: 250000000011 используйте то же место, что и 250000000012 в вашем таблица, тем более что это bigint (8 байт).

В противном случае

  • откуда вы знаете, что Id = 25 из 6 месяцев назад сегодня Id = 25?
  • как вы поддерживаете ограничения целостности? Вы должны убедиться, что у вас есть внешние ключи везде при обновлении | Удалить каскад
  • если вы не всегда удаляете последнюю запись в таблице, выигрыш от 0 добавляется с идентификатором следующей добавленной записи, по крайней мере, с +1 от ранее добавленной.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...