/ / MYSQL автоматично збільшити кількість стовпців на 1 за оновленням? - mysql, sql-update

Автоматичне збільшення кількості стовпців MYSQL до 1 на оновлене? - mysql, sql-update

У мене є таблиця: ідентифікатор, ім'я, рахунок, варшар (255)

Тепер я хотів би збільшити "count" кожного разу, коли цей рядок у таблиці оновлюється.

Звичайно, простий спосіб полягає в тому, щоб почитати спочатку, отримати значення, збільшити на 1 в php, а потім оновити з новим значенням. БЕЗ!

Чи є швидший спосіб зробити це? Чи існує система в mysql, яка може автоматично виконувати ++? люблять autoincrement, але для єдиної сутності на себе?

Відповіді:

11 за відповідь № 1

Я бачу два варіанти:

Просто додайте цю логіку до кожного запиту на оновлення

UPDATE `table` SET
`data` = "new_data",
`update_counter` = `update_counter` + 1
WHERE `id` = 123

2.

Створіть тригер, який буде виконувати роботу автоматично:

CREATE TRIGGER trigger_name
AFTER UPDATE
ON `table`
FOR EACH ROW
BEGIN
UPDATE `table`
SET `update_counter` = `update_counter` + 1
WHERE `id` = NEW.id
END

2 для відповіді № 2

Створіть тригер: http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html

Тригери - це фрагменти коду, які "ініціюються"за базою даних про певні події. У вашому випадку подія буде оновленням. Багато СУБД підтримує тригери, так само й MySQL. Перевага використання тригера полягає в тому, що кожен фрагмент вашої логіки PHP, який оновлює цей об'єкт, буде неявно викликати логіку тригера, вам більше не слід пам'ятати, коли ви хочете оновити свою сутність з іншої частини логіки PHP .


0 для відповіді № 3

ви можете шукати в тригер

або може зробити додатковий запит mysql

update table set count=count+1 ;

0 для відповіді № 4
UPDATE table SET name="new value", count=count+1 WHERE id=...

Оновлення SQL може використовувати поля у звіті, що оновлюється, як джерело даних для самого оновлення.