На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF, JoeUser
  
> Обновление базы из другой под-базы, SQL (но интересно и для других)
Имеются 2 файла с SQL-базами одинакового формата (условно скажем, набор студентов с их фамилией, именем, увлечениями и т.д.) - stud.db и nov.db.
Хочется из командной строки (Win10 x64) добавить=влить в общую базу stud.db значения из малой базы nov.db.
При этом может быть 2 варианта:
а) некоторые из значений уже есть - тогда переписать их;
б) не переписывать имеющиеся, а проигнорить.

Подскажите, как такое можно было бы организовать=сделать?
:thanks:
Цитата Славян @
2 файла с SQL-базами одинакового формата ... stud.db и nov.db.

Укажи точно DBMS для каждой БД, включая версию.

Добавлено
Цитата Славян @
При этом может быть 2 варианта:
а) некоторые из значений уже есть - тогда переписать их;
б) не переписывать имеющиеся, а проигнорить.

Вариант 1 - это вариант 2,выполненный в обратном направлении.
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Цитата Akina @
Укажи точно DBMS для каждой БД, включая версию.
Эх, кабы я знал, что такое DBMS!.. :oops:

Цитата Akina @
Вариант 1 - это вариант 2,выполненный в обратном направлении.
Это я виноват, несколько неточно написал. Имелось ввиду следующее: есть записи в базе, у коих совпадает, скажем, "Фамилия,Имя", а вот другие поля различны. И хочется не плодить десяток Ивановых И.И., а проигнорить таковую запись, если она есть и в большой, и в малой базе. :blush:
Цитата Славян @
Эх, кабы я знал, что такое DBMS!.

Система управления базами данных, иными словами ... Акина спрашивает - какой движок пользуешь?
К примеру: MySQL, PostgreSQL, SQLite, M$ Access... Откуда эти файлы с раcширением .db?
Мои программные ништякиhttps://majestio.info
SQLite, конечно. :blush:
Цитата Славян @
Подскажите, как такое можно было бы организовать=сделать?
:thanks:

Например через https://github.com/RamblingCookieMonster/PSSQLite
Сообщение отредактировано: Gonarh -
Цитата Славян @
Подскажите, как такое можно было бы организовать=сделать?

SQLite3-CLI, см.главу 20.
Мои программные ништякиhttps://majestio.info
Цитата Славян @
кабы я знал, что такое DBMS!..

Очень хочется показать тебе скриншот ответа гугла на запрос "DBMS"...

Цитата Славян @
Имелось ввиду следующее: есть записи в базе, у коих совпадает, скажем, "Фамилия,Имя", а вот другие поля различны. И хочется не плодить десяток Ивановых И.И., а проигнорить таковую запись, если она есть и в большой, и в малой базе.

При слиянии двух таблиц есть три варианта.

1) Все дубликаты по уникальному ключу игнорируются

2) Все дубликаты по уникальному ключу заменяют исходные записи

Эти два варианта абсолютно аналогичны с точностью до направления выполнения операции (и, соответственно, того, в какой таблице образуется результирующий набор). Обычно в качестве таблицы-эталона выбирается та, в которой больше записей (если количество записей различается значительно) - просто ради ускорения процесса.

3) Для записей-дубликатов только часть полей записи-оригинала заменяется на значения из записи-копии (например, только поля, имеющие значение NULL).

Вот третий вариант - особенный, не имеющий аналога.
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Всем как бы спасибо, я ожидал что-то вроде:
ExpandedWrap disabled
    sqlite3.exe --rez=itog.db --flag='флаги' --add stud.db nov.db
Буду думать (если не плюну).
Цитата Славян @
Буду думать (если не плюну).

Сделай SQL-запрос в виде текстового файла (в принципе можно и echo'м попробовать на-лету собрать). Потом пайпом передай в sqlite3.exe
Мои программные ништякиhttps://majestio.info
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1121 ]   [ 20 queries used ]   [ Generated: 29.03.20, 08:54 GMT ]