Триггер для переустановки автоматического приращения таблиц в phpMyadmin

0

У меня есть база данных, 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 
another thing to work on).

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

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

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

Спасибо

  • 0
    Вам не нужно сбрасывать автоинкремент, просто дайте ему расти ...
Теги:
database
phpmyadmin
triggers
record

2 ответа

1
Лучший ответ

Я согласен с комментарием 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

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню