К основному контенту

Удаление ошибочно внесённых записей

Случается, что мы по ошибке копируем не те данные совсем не в ту базу данных. И с этим надо  что-то делать, удалить неверно скопированное. И каким же образом это сделать? Ну, конечно, через запросы! Раз уже такое дело, то в работе с БД частенько приходится рисковать, работая прямо на живую.
Я же, запутавшись, скопировал из одного рабочего каталога в генеральный, хотя должен был в другой рабочий.
Признаться честно, сначала Я думал написать небольшую программу на каком-нибудь из знакомых языков программирования, но потом во мне вновь включился админ и Я решил отказаться от этой странной затеи, просто поискав возможность подключиться к двум базам данных. И, как оказалось, в моём случае, по-крайней мере, при использовании MS SQL Server 2005 (or later), можно написать несколько простых строк:

delete A
from db1.dbo.doc A
inner join
db2.dbo.doc B
on
A.item like B.item 
Вот таким простым и нехитрым способом можно вычистить ошибочно добавленные записи.

UPD: после выяснилось, что записи удаляются, а вот инвентарники Я не учёл и их тоже хорошо было бы выдрать, иначе получается ерунда и каталог не пускает (естественно) записи с инвентарниками, которые совпадают с номерами тех, что были удалены. Поэтому нужно сделать ещё один финт ушами:
DELETE FROM inv
where doc_id not in
(select doc_id from doc
where 1=1)
go 

Комментарии

Популярные сообщения из этого блога

Типичные неисправности ЖК-мониторов

Случилось у меня беда: умерли два одинаковых монитора. И вот стал я искать типовые неисправности для своей модели. (Умерли одинаково.) И вот нашёл такую вещь на просторах. Решил скопировать, дабы не потерять. А то ведь всякое случается с сайтами. Так надёжнее.

Автоматическое рисование топологии сети и прочие "плюшки" FPinger

Как правило, для создания карты сети молодой (а порою даже и не очень) админ ходит по всем укромным уголкам своей организации и ищет откуда и куда тянутся цветные провода. Но это не то чтобы глупый админ (потому что надо самому всё посмотреть и просто знать, где что находится физически), не сказать что работящий (может ему просто скучно и он устроил себе квест по поиску хабов и свитчей), но и не сказать что ленивый... Короче, хрен знает, почему люди так делают. Я отношусь к той категории людей, которым просто лень оторвать задницу от стула до тех пор, когда станет совершенно ясно, что без этого никак. Но вот когда я могу обойтись без этого, я со спокойной душой делаю всё, что требуется сидя на месте. Вот и сегодня, решил сделать давно стоявшее в очереди дел задание: нарисовать топологическую карту сети. Не очень понимаю, зачем предыдущему админу это понадобилось делать, но после того как он уволился это повисло на следующего за ним. Будучи от природы в меру ленивым, я стал искать...

Исправление системных таблиц mysql

Что делать, если вдруг возникла "непонятная" ошибка в mysql. В частности, phpmyadmin сыплет ошибку при входе, консольный клиент тоже выдаёт нечто непонятное? Что-то вроде: #1682 - Native table 'performance_schema'.'session_variables' has the wrong structure или Table 'performance_schema.session_variables' doesn't exist В консоли, непременно от root'а нужно просто запусить mysql_upgrade -p после чего перезапустить mysql. Что-то вроде  service mysql restart После этого ошибки исчезнут.