Как мне добавить один в столбце таблицы? - PullRequest
3 голосов
/ 15 февраля 2010

У меня есть столбец таблицы MySQL, который действует как счетчик (int). Каждый раз, когда я обновляю этот столбец, я хочу, чтобы значение поля получало плюс 1.

Так что, если бы было 45, я бы хотел, чтобы это было 46.

Как я могу сделать это с SQL?

Ответы [ 3 ]

11 голосов
/ 15 февраля 2010

Вы можете использовать запрос, такой как этот:

update your_table 
set your_column = your_column + 1 
where identifier = X

Конечно, до вас, чтобы заменить имена таблиц и столбцов ;-)
И чтобы убедиться, что условие в предложении where в порядке; -)

5 голосов
/ 15 февраля 2010

MySQL v5.0.2 или выше поддерживает триггеры, которые представляют собой фрагменты кода, которые выполняются всякий раз, когда в одну из строк выполняется операция вставки / обновления / удаления.

для получения дополнительной информации о триггерах в MySQL проверьте эту ссылку

2 голосов
/ 15 февраля 2010

Поскольку вы хотите, чтобы это происходило каждый раз, вы можете использовать триггер:

delimiter //
create trigger increment_field before update on your_table
for each row
begin
if new.your_column <> old.your_column then
  set new.your_column = new.your_column + 1
end if;
end;//
delimiter ;

Я не совсем уверен, что понимаю ваш вопрос.Вышеупомянутое решение сделает так, что всякий раз, когда строка обновляется так, что your_column присваивается другое значение, вместо этого она делает your_column = new_value + 1.Использование новых и старых ключевых слов и условных обозначений, используемых в каждой строке, следует изменить в соответствии с вашими потребностями.

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