2010-02-14 2 views
2

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

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

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

ответ

5

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

для получения дополнительной информации о триггерах в MySQL проверить this link

10

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

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

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

+0

Сделайте это и поставьте его в курок. @Pascal: вопрос спрашивает об этом при каждом обновлении. –

2

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

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 ; 

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