# #sql #google-bigquery
Вопрос:
У меня есть умеренно сложный скрипт (создайте около 20 различных таблиц, около 1500 строк). При внесении изменений мне нужно запускать только ту часть кода, которая появляется после изменения. Обычно у меня нет никаких проблем с этим, но сегодня я выбрал строки 800-1500, нажал ctrl enter, и когда он завершил запуск 6 минут спустя, я обнаружил, что весь код над строкой, с которой я начал запуск (т. Е. строки 1-799), был удален.
Когда я нажимаю ctrl z, ничего не происходит, так что каким-то образом изменение было зафиксировано. У меня есть несколько более ранних версий скрипта, но здесь есть изменения, которые были удалены и которые я больше нигде не сохранял.
Два вопроса:
- почему это происходит? есть ли способ предотвратить это снова? (кроме более строгого контроля версий или выполнения подмножества запроса в другом окне редактирования запроса)
- Любой способ восстановить удаленный код, если ctrl z не работает, и его нет в истории запросов, так как я не запускал этот фрагмент сегодня?
примечания: использование веб-интерфейса BigQuery для этого
Комментарии:
1. Недавно я начал неоднократно сталкиваться с этой проблемой в прошлом месяце, чего раньше никогда не случалось. Критическая проблема, так как она перезаписывает сохраненный сценарий запроса
Ответ №1:
Что-то заставило вашу вкладку браузера перезагрузиться. URL-адрес в браузере немедленно обновляется новым job_id
параметром каждый раз, когда вы выполняете запрос, и при переходе по этому URL-адресу (путем перезагрузки вкладки или иным образом) отобразится точный SQL, выполненный этим заданием, и набор результатов, если задание завершено. Если вы выделили только часть запроса — welp, это запрос, который был выполнен, поэтому этот запрос будет отображаться при повторном посещении этого URL. 🙁
Новая функция «вкладки редактора» вызвала это для меня: мне нужно нажать кнопку «отключить вкладки редактора» в верхней части пользовательского интерфейса bigquery, чтобы предотвратить перезагрузку страницы при выполнении запросов с несколькими этапами. Но существует бесконечное множество возможных причин, по которым ваши конкретные вкладки могут перезагружаться в вашей конкретной системе, поэтому вот второе исправление:
Используйте /* */
комментарии SQL, чтобы блокировать части запроса, которые вы не хотите запускать. Комментарии являются частью вашего запроса и, следовательно, будут по-прежнему видны, даже если вкладка браузера перезагрузится.
Комментарии:
1. Я тоже попробую «отключить вкладки редактора», чтобы посмотреть, устранит ли это проблему