insert into table1 ...;
update table2 set count=count+1;
Вышеуказанное вставляет что-то в table1
, и если оно завершается успешно, обновляет поле count
table2
.Есть ли более эффективный метод, чем транзакции?
Конечно, такие вещи могут обрабатываться транзакциями, но транзакции должны блокировать таблицу, которая не будет эффективной в высокой параллельной системе. И это может быть еще хуже, если вам нужно обновить несколько таблиц в этой транзакции.
Какое у вас решение?
Я использую PHP, и я осуществляю сделки таким образом:
mysql_query('begin');
mysql_query($statement1);
mysql_query($statement2);
...
mysql_query('commit');
Так это выглядит, как все таблицы, указанные в этих $statement
будет заблокированы?
В какой версии MySQL установлен стабильный триггер? – user198729
> = 5.1.6 http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html – Rufinus