Лекция
Привет, Вы узнаете о том , что такое sql ошибки в базе неверные данные или что делать с проблемным dml запросом , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое sql ошибки в базе неверные данные или что делать с проблемным dml запросом , настоятельно рекомендую прочитать все из категории Методы выявления ошибок в SQL приложении.
Проблемы с неправильными данными возникают не только в случае с SELECT аналогичным рассмотренным ранее, но и в случае запросов, модифицирующих данные. Так называемых DML запросов.
Рассмотрим пример.
mysql> create table t1(f1 int);
Query OK, 0 rows affected (0.01 sec)
mysql> create table t2(f2 int);
Query OK, 0 rows affected (0.08 sec)
mysql> insert into t1 values(1);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+------+
| f1 |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
mysql> delete from t1, t2 using t1, t2;
Query OK, 0 rows affected (0.00 sec)
Данный запрос должен был бы удалить все строки в таблицах t1 и t2: использован «using t1, t2;» и нет предиката WHERE. Об этом говорит сайт https://intellect.icu . Однако это не так.
Обратите внимание на строчку "0 rows affected". Она обозначает, что было удалено 0 строк, то есть ничего удалено не было! Почему?
Проверим что у нас в таблицах:
mysql> select * from t1;
+------+
| f1 |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
Что произошло?
В случае с SELECT мы могли бы воспользоваться предыдущим приемом и посмотреть вывод EXPLAIN EXTENDED. Но MySQL не поддерживает EXPLAIN DELETE/UPDATE/INSERT. Эта возможность планируется, но в данный момент еще не реализована. Что же предпринять в этом случае?
Лучший способ проверить запросы delete/insert/update - это конвертировать их в соответствующие select запросы:
mysql> select * from t1, t2;
Empty set (0.00 sec)
Мы получили тот же запрос, что рассматривали в предыдущей главе. Соотетственно вывод аналогичный: в данном случае выражение t1, t2 обозначает t1 INNER JOIN t2. А так как в таблице t2 нет данных, то и нет поля, по которому они могли бы объединиться. Соответственно не было ничего удалено.
Аналогичным способом можно работать и с проблемными update запросами.
Прием №6: преобразуйте DML запросы в соответствующий SELECT чтобы выяснить какие строки будут изменены.
В заключение, эта статья об sql ошибки в базе неверные данные или что делать с проблемным dml запросом подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое sql ошибки в базе неверные данные или что делать с проблемным dml запросом и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Методы выявления ошибок в SQL приложении
Из статьи мы узнали кратко, но содержательно про sql ошибки в базе неверные данные или что делать с проблемным dml запросом
Комментарии
Оставить комментарий
Базы данных - Методы выявления ошибок в SQL приложении
Термины: Базы данных - Методы выявления ошибок в SQL приложении