Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88

Копирование данных одного столбца из БД в БД. Но не по INSERT INTO

08.04.2021, 19:29. Показов 4413. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2021, 19:29
Ответы с готовыми решениями:

Копирование данных из одного столбца в другой с условием связанным с датами
Здравствуйте! Я столкнулся со след. задачей: Есть столбец A в котором указанны числа и столбец B в котором указанны даты. Данные из...

Копирование столбца из одного документа в другой
Подскажите пожалуйста. У меня есть эксель файл в одной папке, мне нужно из него взять один определенный столбец и скопировать данные в...

Копирование столбца из одного файла в другой
Есть файл, откуда нужно взять четвертый столбец. Файл выглядит так: 1 11 21 31 41 2 12 22 32 42 3 13 23 33 43 4 14 24 34 44 5 15...

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  [ТС]
Ошибка.
Миниатюры
Копирование данных одного столбца из БД в БД. Но не по INSERT INTO  
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, в оглавлении ни одной из них про триггеры не сказано. Потому что для каждой СУБД триггеры обрабатываются по своему.
Вот код, который работает по перечислению столбцов.
MySQL
1
2
3
4
5
6
DELIMITER $$
CREATE TRIGGER snip_p AFTER INSERT ON snip
FOR EACH ROW
BEGIN
INSERT INTO snip1 (snip_vg, oruzh, price) VALUES (NEW.snip_vg, NEW.oruzh, NEW.price);
END $$
Как сделать, чтобы вставлять строки без перечисления столбцов (их может быть 100 и более), пока не надумал)
Подскажите?
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  [ТС]
Цитата Сообщение от Аватар Посмотреть сообщение
Если в values столько же выражений сколько полей в таблице, то перечислять поля не обязательно.
А как тогда выглядит код?

Добавлено через 4 минуты
Так не работает
Code
1
INSERT INTO snip1 (*) VALUES (SELECT * FROM snip WHERE id=1)
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
2674 / 1824 / 176
Регистрация: 25.07.2015
Сообщений: 2,954
15.04.2021, 08:27
KAMLS, как то так
MySQL
1
2
3
4
INSERT INTO snip1 
SELECT * 
FROM snip 
WHERE id=1
Если пишите на MySql , то настоятельно рекомендую изучать док-цию по MySql , а не по SQLite.
В разных СУБД одна и та же по смыслу конструкция может разительно отличаться по синтаксису.
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
15.04.2021, 08:32  [ТС]
Спасибо, буду изучать.
0
2674 / 1824 / 176
Регистрация: 25.07.2015
Сообщений: 2,954
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2021, 09:22

Копирование столбца из одного файла Excel в другой
Есть вот такой код, мне нужно скопировать данные из одного файла в другой. Но выдает ошибку "run-time error 9: subscript out of...

Копирование ячеек столбца одного листа и переноса на другой лист
Доброго времени суток всем вам, уважаемые форумчане. В виду рабочей необходимости, я начал изучать программирование на VBA. Однако на...

Как с одного столбца выдергнуть группы данных и снова сгрупировать в два столбца по порядку
Доброго времени суток, профессионалы!!! В данном направлении я почти 0 на палочке, но всё-же мне необходимо это сделать. Суть в том,...

Как сделать выбор данных одного столбца из нескольких таблиц, если имя этого столбца везде совпадает?
Подскажите, как сделать выбор данных одного столбца из нескольких таблиц, если имя этого столбца везде совпадает. Например, у меня есть 3...

Копирование данных с одного листа на другой
Здравствуйте! Помогите, пожалуйста, профану в программировании написать процедурку копирования с одного листа на другой. На одном листе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение 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) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru