Архив метки: mysql

Insert или Update если не уникальная запись

Маленькая напоминалка . Синтаксис pgsql чуть отличается от mysql.

Задача: если запись не уникальна в таблице, то просто обновить дату последнего обновления.

MySQL:

PostgreeSQL:

Уникальным должен быть объявлен столбец ssid

Как постранично (порционно) листать результат запроса в 1С (ака LIMIT x,y в MySQL)

Большая беда MSSQL и как следствие 1С — отсутствие возможности порционно листать записи результата запроса как в MySQL. В результате рождаются такие монстроузные алгоритмы как ниже (код не мой):

Если вкратце, то алгоритм следующий:

  1.  Делаем выборку ВСЕХ записей, определяя, с какой записи было начало предыдущей страницы
  2. Начиная с этой записи, делаем выборку N записей
  3. Передаем результат

Интересно будет посмотреть как этот алгоритм будет вести себя при миллионах записей..

 

Восстановление только одной таблицы из бекапа MySQL

Довольно частая ситуация: есть бекап базы. Развертывать его целиком чтобы посмотреть данные одной таблицы? А если он большой это может занять продолжительное время. Есть вариант с использованием sed:

В результате выполнения будет сформирован файл содержащий только таблицу usbox_services. Ну а далее его уже заливаем стандартно..

MYSQL: <имя таблицы> is marked as crashed and should be repaired

В моем случае обошлось просто (Внимание! данные в таблице удаляются!):

Если данные важны для сохранения,восстановить можно попробовать так:

Интересное поведение mysql при выборке из таблицы содержащей NULL

Столкнулся с интересным поведением MySQL при выборке из таблицы содержащей NULL в качестве значения.  Очередной подвох однако.. Пусть например есть таблица:

Хотим получить все значения не содержащие uuid=»peni». Логично было бы использовать такой запрос:

Аааа. А куда делись остальные значения? А вот потому что с точки зрения MySQL правильно будет:

Вывод: при создании таблиц нужно стараться заполнять поля значениями «по умолчанию». Чтобы NULL не было в принципе. Тогда и возможной ошибки не будет.