|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
Копирование данных одного столбца из БД в БД. Но не по INSERT INTO08.04.2021, 19:29. Показов 4427. Ответов 45
Метки нет (Все метки)
Здравствуйте!
В процессе изучения SQL решил потренироваться в различных комбинациях копирования данных из таблицы в таблицу и из БД в БД. В итоге наткнулся на такую ситуацию. В БД_1 есть таблица с данными Т_1. Её скопировал в БД_2 и там она называется также Т_1. Там у неё обнулил крайний столбец. После чего попытался заполнить данными из такого же столбца из БД_1. Если действовать через INSERT INTO, то данные вносятся с последней строки и это не правильно. Сделал такую же ситуацию, но в рамках одной БД_1. Конечно же вторую таблицу назвал Т_2. То есть тоже скопировал, обнулил крайний столбец и его получилось заполнить таким вот запросом: UPDATE orders1 SET titleO = (SELECT titleO FROM orders WHERE orderNumber = orders1.orderNumber) Т.е. заполнить как полагается, с первой строки. А вот между БД_1 и БД_2 не получается. Кто знает, подскажите пожалуйста?
0
|
|
| 08.04.2021, 19:29 | |
|
Ответы с готовыми решениями:
45
Копирование данных из одного столбца в другой с условием связанным с датами Копирование столбца из одного документа в другой Копирование столбца из одного файла в другой |
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 13.04.2021, 09:29 | |
|
В предыдущей теме псевдоним потребовался потому что обращение к имени таблицы с другой базы было и в других местах, например перед именем поля - ИмяБазы.ИмяТаблицы.ИмяПоля так нельзя, а использовав псевдоним можно Псевдоним.ИмяПоля. Здесь же вообще другая ситуация, в перечней полей для вставки и для таблицы вообще ни каких псевдонимов по определению не предусмотрено, смотри синтаксис команды. А указать таблицу как ИмяБазы.ИмяТаблицы ни чего не мешает
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 13.04.2021, 09:39 [ТС] | |
|
Ошибка.
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 13.04.2021, 09:49 | |
|
а точку с запятой после команды insert не надо? DELIMITER?
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
||||||
| 13.04.2021, 10:11 [ТС] | ||||||
|
Надо)))
Вы можете подсказать принцип решения задачи по такой же вставке, но только не перечислением столбцов, а чтобы разом. Например, у меня две таблицы. Одна рабочая, а другая бэкап так сказать. Я вставляю в одну таблицу строку, и такая же появляется в другой таблице. Но смысл именно в облегчении написания кода. например, таблица на сто столбцов. Перечислять все в условии триггера - утомительно. Полагаю решение есть, но такого синтаксиса я пока нигде не нашел. В учебниках вообще про триггеры не пишут. У меня 5 книг по SQL, в оглавлении ни одной из них про триггеры не сказано. Потому что для каждой СУБД триггеры обрабатываются по своему. Вот код, который работает по перечислению столбцов.
Подскажите?
0
|
||||||
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 13.04.2021, 10:57 | |
|
Если в values столько же выражений сколько полей в таблице, то перечислять поля не обязательно. Иначе нужно, это следует из синтаксиса и ни каких обходных путей, например для перечисления исключений, нет
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|||||||
| 13.04.2021, 11:06 [ТС] | |||||||
|
Добавлено через 4 минуты Так не работает
0
|
|||||||
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 13.04.2021, 11:15 | |
|
А (@) или (#) не пробовал? чем оно хуже придуманного (*)? Просто список опускается, если что скобки это тоже часть списка. С селектом values не надо и скобки не надо. Это же все есть в описании команды. Читать лень?
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 13.04.2021, 11:22 [ТС] | |
|
Я вам признаюсь честно, @ и # ни разу не применял. Я только осваиваю SQL. Если можете, напишите пожалуйста пример. Ну, то есть по моему примеру применение этих символов. Чтобы понимать на примере как это работает. На примерах всегда усваивается лучше.
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 13.04.2021, 11:33 | |
|
То сарказм, ни как оно не работает, ага ) На примерах хорошо, не против, но сначала нужно тщательно изучить синтаксис команды, тогда и не будет появляться в вопросах чего-то типа INSERT INTO snip1 (*)
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
||
| 13.04.2021, 13:08 [ТС] | ||
|
)))
Ну, то есть я правильно понял, вы такого не делали и как это делается - не знаете?) Добавлено через 1 час 32 минуты Тут (да наверное вы знаете) https://www.sqlite.org/lang_insert.html
0
|
||
|
2676 / 1828 / 176
Регистрация: 25.07.2015
Сообщений: 2,958
|
||||||
| 15.04.2021, 08:27 | ||||||
|
KAMLS, как то так
В разных СУБД одна и та же по смыслу конструкция может разительно отличаться по синтаксису.
0
|
||||||
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 15.04.2021, 08:32 [ТС] | |
|
Спасибо, буду изучать.
0
|
|
|
2676 / 1828 / 176
Регистрация: 25.07.2015
Сообщений: 2,958
|
|
| 15.04.2021, 08:41 | |
|
KAMLS, да , забыл сказать : если у вас ID , по которому идёт поиск ,
имеет признак уникальности или первичного ключа , то тот запрос , который я вам дал выдаст ошибку , т.к. будет вставляемый ID будет продублирован.
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 15.04.2021, 08:46 [ТС] | |
|
Да, это я уже прошел)
По большому счету, на данный момент, я нигде не нашел способа сделать то, что описал. То есть копирование массы столбцов не перечисляя, за исключением одного или нескольких. Нет такого способа.) Правда показали вот такую страницу, но и на ней я не увидел возможности осуществления задуманного. Может, просто не понял. https://www.sql-ex.ru/help/select20.php?Lang=0
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 15.04.2021, 09:03 | |
|
по ссылке предлагается запросом выдернуть наименования столбцов таблицы без нескольких заданных, сформировать из них строку имен разделенных запятой. Его можно потом просто скопировать себе в прогу что бы руками не набирать ) А по другому практического смысла не особо. Ибо для вставки нужно сделать процедуру, передав ей кучу параметров, в процедуре сформировать строчку с именами полей и динамический запрос на обновление используя эту строчку и переданные параметры, и выполнить этот запрос. Не проще ли просто перечислить 100 полей в списке вставки?
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 15.04.2021, 09:09 [ТС] | |
|
Может и проще... При создании таблицы скопировать список столбцов в блокнот и хранить его в папке на данную таблицу, чтобы если понадобится, просто вставлять в набираемый код)))
Добавлено через 2 минуты Сейчас изучаю возможность вставки автоинкремента в уже существующую таблицу со строками, в простой зависимый столбец, это возможно? По логике как бы не очень. Вы знаете?
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 15.04.2021, 09:10 | |
|
или не создавать таблиц с сотней полей ))
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 15.04.2021, 09:12 [ТС] | |
|
Да) Мне задавали вопрос "зачем?" Я объяснил, что изучаю возможности системы.)
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 15.04.2021, 09:16 | |
|
Что такое простой зависимый столбец?
0
|
|
|
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
|
|
| 15.04.2021, 09:22 [ТС] | |
|
Ну, это из терминологии по нормализации. Независимым является ключевой столбец (в рамках одной, данной таблицы), остальные зависят от него (ну, типа зависимые не должны зависеть от зависимых, а только от ключевого (по смыслу)). Ну, отсюда и вопрос. В ключевом столбце с primary key автоинкремент обычно и есть (хотя и не всегда).А вот чисто из эксперимента, можно ли назначить в уже существующую таблицу со строками, новый столбце с автоинкрементом? Откуда он будет считать свой автоинкремент? Выполнить его от уже существующей первой строки до, например, строки 11? Или начнёт от последней, уже существующей строки?
0
|
|
| 15.04.2021, 09:22 | |
|
Копирование столбца из одного файла Excel в другой
Как с одного столбца выдергнуть группы данных и снова сгрупировать в два столбца по порядку
Копирование данных с одного листа на другой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|