Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

SQL ошибки 3. В базе неверные данные или что делать с проблемным DML запросом.

Лекция



Привет, Вы узнаете о том , что такое 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 запросом
создано: 2016-03-02
обновлено: 2024-11-10
122



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных - Методы выявления ошибок в SQL приложении

Термины: Базы данных - Методы выявления ошибок в SQL приложении