Контроль успешности операции? Это что, не совсем понимаю.
Простейший пример - передача некорректного значения, приводящего к усечению. Это не ошибка, это предупреждение. И соответственно ни ошибка в программу не упала, ни транзакция не откатилась, а в данных лажа. Или там триггер подал сигнал, а хранимая процедура его не отресигналила... Подобных событий, при которых желаемая операция не выполняется или выполняется не так, как требуется, но без падения по ошибке - вагон и маленькая тележка. А твоя программа о таких событиях ни сном ни духом.
Или вот например что будет, если User::find ничего не найдёт, или наоборот - найдёт больше одной записи? я лично фиг знает, ибо в ларавелях ноль - но приведёт ли это к ошибке кода и откату транзакции?
А где у Вас контроль успешности операции? не успешности выполнения программы, не успешность выполнения запроса, а именно выполнение операции запроса? Ведь иногда выполнение запроса с "нулевым" результатом - это не ошибка, а штатное событие...
Включите General Log и отсмотрите по проблемным транзакциям, какие именно запросы поступали на сервер MySQL.
А где у Вас контроль успешности операции? не успешности выполнения программы, не успешность выполнения запроса, а именно выполнение операции запроса? Ведь иногда выполнение запроса с "нулевым" результатом - это не ошибка, а штатное событие...
Включите General Log и отсмотрите по проблемным транзакциям, какие именно запросы поступали на сервер MySQL.
Поле автоинкремента не требует наличия выражения по умолчанию.
Я бы даже сказал - не допускает, ибо приведёт к ошибке "Invalid default value for column 'id'".
IceNix, это выражение считает количество уникальных id_param для заданного param_table и проверяет, что оно равно количеству значений в списке (т.е. что каждое значение из списка присутствуент хотя бы в одном экземпляре).
Лентюй, а что там монструозного-то? Особенно если сервер восьмой версии.. особенно если выяснится, что надо связывать по отдельному значению, а не извлекать его.
Простейший пример - передача некорректного значения, приводящего к усечению. Это не ошибка, это предупреждение. И соответственно ни ошибка в программу не упала, ни транзакция не откатилась, а в данных лажа. Или там триггер подал сигнал, а хранимая процедура его не отресигналила... Подобных событий, при которых желаемая операция не выполняется или выполняется не так, как требуется, но без падения по ошибке - вагон и маленькая тележка. А твоя программа о таких событиях ни сном ни духом.
Или вот например что будет, если User::find ничего не найдёт, или наоборот - найдёт больше одной записи? я лично фиг знает, ибо в ларавелях ноль - но приведёт ли это к ошибке кода и откату транзакции?