У мене є таблиця: ідентифікатор, ім'я, рахунок, варшар (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 може використовувати поля у звіті, що оновлюється, як джерело даних для самого оновлення.