Dima
очистить таблицу безопасно если она существует*
Bogdan
надо вроде как вручную проверять
Сидредин
Что значит очистить?
Dima
Что значит очистить?
прямо то и значит оставить её пустой?
Алексей
очистить таблицу безопасно если она существует*
Так если не существует ошибкам будет)
Dima
Так если не существует ошибкам будет)
мы можем с удалением таблица написать DROP TABLE IF EXISTS и это будет БЕЗОПАСНО
Bogdan
вроде как delete from не имеет if exists
Сидредин
Bogdan
потому надо селект делать
Алексей
потому надо селект делать
Конечно и там можно или ты или кейс
Dima
вроде как delete from не имеет if exists
ВОТ, я так и думаю, подскажите как написать запрос я с sql напрямую раз в год сталкиваюсь
Mikhail
безопасно мы можем DROP TABLE IF EXISTS table написать а вот с оператором DELETE FROM не можем
Никак, только в два шага. Это ж sqlite. Проще всего дропнуть таблицу и создать заново, ибо в случае delete from ты еще и обнулить sql_sequence должен.
Bogdan
чекаешь через селект и только потом уже вызываешь делейт фром
Bogdan
либо дропаешь таблицу и создаешь новую
Bogdan
в sqlite нет аналога sql server-а
Dima
либо дропаешь таблицу и создаешь новую
как это написать в запросе что бы выполнилось создание новой если я дропнул?
Bogdan
то-есть полноценного ифа
Bogdan
в один нельзя в sqlite
Bogdan
Это sqlite, там логики минимум.
ну учитывая что это файловая бд то многого от неё ждать и не стоит
Mikhail
как это написать в запросе что бы выполнилось создание новой если я дропнул?
А зачем тебе проверять? Если не дропнул, то значит таблицы и не было, значит ее надо создать в любом случае.
Dima
А зачем тебе проверять? Если не дропнул, то значит таблицы и не было, значит ее надо создать в любом случае.
так вот как эту логику написать? у меня хелпер для бд я пишу что то вроде db.execute("....") и метод execute не возвращает ничего
Алексей
Delete from table Так нельзя чтоль? Я чето никогда об удалении не задумываюсь. У меня селект больше проблема))))
Bogdan
то-есть его не устраивает ошибка no such table
Bogdan
да нет другого способа, только 2 запроса делать
Bogdan
SQlite имеет очень ущербное количество функционала
Mikhail
так вот как эту логику написать? у меня хелпер для бд я пишу что то вроде db.execute("....") и метод execute не возвращает ничего
Какую именно? Ты хочешь имплементировать TRUNCATE функцию, я правильно понимаю? Если такой таблицы нет, то функция должна делать ничего, правильно?
Dima
да нет другого способа, только 2 запроса делать
а если таблица уже создана Create table проигнируется?
Bogdan
но в этом и его преимущество
Bogdan
вообще проще всего это на стороне бэка проверить
Bogdan
чем на стороне самой бд
Dima
вообще проще всего это на стороне бэка проверить
если бы я мог сделать иначе я бы сделал, это локальный кеш на устройстве и у меня sqlite
Mikhail
верно если таблица есть очистить, если нет - ничего не делать.
Тогда просто делаешь запрос на проверку существования таблицы. Если запрос вернул что-то, то делаешь DELETE FROM + UPDATE SQL_SEQUENCE + VACUUM. Если не вернул, то ничего не делаешь.
Алексей
да
SHOW TABLES LIKE '%tablename%'; А такое не подойдёт?
Mikhail
у меня db.execute ничего не возвращает принципе, все запросы пишутся в однострочнем порядке
1. Что значит не возвращает ничего? А селекты тоже не будут работать что ли? 2. В чем проблема обернуть db.execute и вызвать его два раза?
Bogdan
а ну значит видимо как я и говорил ему только 2 запроса
Bogdan
другого варианта нет
Bogdan
кстати а в sqlite нет delete or ignore?
Bogdan
я просто забыл из какой бд эта конструкция
Bogdan
ну тогда F
Dima
спасибо за наводу)
Женя |
Чтоб ты текст ошибки прочитал
класс. и как это фиксить? если он глобальную переменную не видит
Mikhail
класс. и как это фиксить? если он глобальную переменную не видит
Передай переменную внутрь функции в виде параметра в явном виде.
Igor
класс. и как это фиксить? если он глобальную переменную не видит
либо если уж решил использовать глобальные переменные напиши в начале функции ... global last_pixmap
Майл
посоветуйте курсы по юнити и шарпу для него?
Igor
кстати а в sqlite нет delete or ignore?
а зачем удалять таблицу ? удалите все из нее delete from table _name;
Bogdan
человеку надо было то что нельзя сделать в 1 запрос
Mikhail
а зачем удалять таблицу ? удалите все из нее delete from table _name;
А sqlite в случае delete без where удаляет и создает заново таблицу по дефолту, trucate optimization же 😉
Mikhail
собственно я о том же
Он пытался найти аналог delete from table if exists
Oleg
#Python Ачё, запихать построчный ввод в list comprehensions не вариант? Тип [введённое из введённого в количестве] Думал тут сделать сразу красиво и в строчку
Erik
И зачем там лист комприхеншн тоже не понял
Oleg
Подают несколько слов на ввод, разделяют их Enter. Слова надо собрать в список. Количество слов известно. Можно такой цикл собрать в list comprehension или это никак и надо расписывать как надо?
Erik
Одна строка на вход подается
Виталик Голоенко
собственно я о том же
https://leetcode.com/problems/integer-replacement/submissions/ гля как решил https://pastebin.com/H8qXuRx4
Erik
Erik
Вот для трех строк
Майл
Unity learn
Спасибо <3
Oleg
[input() for _ in range(3)]
Спасибо) Но почему-то ругается на EOF
Oleg
Erik
У меня не ругается
Igor
Он пытался найти аналог delete from table if exists
В чем проблема? я не понял ... по идее должно прокатить что то типа delete from demo where ID IN (SELECT ID FROM demo a where EXISTS(SELECT 1 FROM demo b WHERE a.ID< b.ID)) просто экзист в еще один подзапрос завернуть и все
Erik
Тебе одна строка, состоящая из трех слов подается. Не три строки