дублирующаяся ключевая ошибка не отменяет/откатывает mysql транзакцию

Следовать подходу Rons: можно найти z-значения, если Вы знаете, как Вы повернули свой прямоугольник.

прием должен найти проективную матрицу, которая сделала проекцию. К счастью, это возможно и даже дешево, чтобы сделать. Соответствующая математика может быть найдена в газете "Проективные Отображения для Изображения, Деформирующегося" Paul Heckbert.

http://pages.cs.wisc.edu/~dyer/cs766/readings/heckbert-proj.pdf

Этот способ, которым можно восстановить однородную часть каждой вершины назад, которая была потеряна во время проекции.

Теперь Вас все еще оставляют с четырьмя строками вместо точек (как Ron объяснил). Так как Вы знаете размер своего исходного прямоугольника однако, ничто не потеряно. Можно теперь включить данные из метода Ron и из 2D подхода в решатель линейного уравнения и решить для z. Вы получаете точные z-значения каждой вершины тот путь.

Примечание: Это просто работает потому что:

  1. исходная форма была прямоугольником
  2. , Вы знаете точный размер прямоугольника в 3D пространстве.

Это - особый случай действительно.

Hope это помогает, Nils

9
задан allixsenos 27 October 2009 в 02:11
поделиться

2 ответа

MySql (и другие sql-движки AFAIK) не делает автоматического отката транзакции при возникновении ошибки.

Вы должны объявить обработчик ошибок, который откатит транзакцию:

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND
BEGIN 
  ROLLBACK; 
  CALL ERROR_ROLLBACK_OCCURRED; 
END;
3
ответ дан 3 November 2019 в 01:02
поделиться

Если вставка не удалась из-за дубликата, база данных откатывает транзакцию до начала этого оператора .

Он использует внутреннюю точку сохранения, созданную в начале оператора, затем откатывается к этой точке сохранения.

Он НЕ выполняет откат всей транзакции, потому что это могло быть не то, что вы хотели.

Поведение клиента mysql можно настроить с помощью параметров командной строки. Он может либо выйти (что приведет к неявному откату), либо продолжить.

Если вы используете собственное приложение, то что оно делает, зависит от вас.


Mysql не навязывает ПОЛИТИКУ на то, как вы обрабатываете сбои - он оставляет это до вашего приложения. Так что то, что вы с ними делаете, - ваше личное дело - вы можете игнорировать их, если хотите.

8
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: