Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2021, 19:26   #1
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию Копирование не всех столбцов из таблицы в таблицу

Здравствуйте!
Есть задача скопировать данные из таблицы в таблицу. Таблицы одинаковые и в разных базах данных.
Поскольку таблицы одинаковые, то, соответственно, номера столбца id являющегося PRIMARY KEY, в обеих таблицах одинаковые.
Код
Код:
INSERT INTO shd.game1 SELECT * FROM training_1.game t WHERE NOT t.gameid
не срабатывает.
Если без условия
Код:
 WHERE NOT t.gameid
пишет ошибку, что дескать номера id одинаковые. Оно и понятно.
С этим условием, ничего не пишет, код проходит, но ничего не происходит. Строки не добавляются.
Подскажите пожалуйста, кто знает. Как копировать все строки всех столбцов, но исключить столбец PRIMARY KEY.
Ладно в этой таблице столбцов не много. А если столбцов 50? Что, их все вручную перечислять в запросе? Думаю, это не дело.
KAMLS вне форума Ответить с цитированием
Старый 12.04.2021, 20:12   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

вы читать сообщения об ошибках не пробовали?..
Цитата:
не срабатывает.
базовые правила синтаксиса объясняются в учебниках.
поле чему-то должно сопоставляться.
Цитата:
Как копировать все строки всех столбцов, но исключить столбец PRIMARY KEY.
перечислить все нужные поля как для заполнения (insert) так и для выбора(select)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.04.2021, 08:30   #3
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
вы читать сообщения об ошибках не пробовали?..
а вы читать посты вдумчиво пробовали?
ясно ведь написано, что одно дело, когда столбцов немного. А если таблица специфическая и столбцов ОЧЕНЬ много? Все перечислять? Или таки есть способ копирования всего за исключением чего-то. если не собираетесь помогать, не пишите просто. Харэ умничать, умник.
KAMLS вне форума Ответить с цитированием
Старый 13.04.2021, 08:54   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
а вы читать посты вдумчиво пробовали?
ровно также как и вы.
Цитата:
ясно ведь написано,
Цитата:
перечислить все нужные поля как для заполнения (insert) так и для выбора(select)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.04.2021, 11:10   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

можно получить все столбцы таблицы из информационной схемы, и при получении убрать ненужные столбцы, но это будет вложенный запрос

https://www.sql-ex.ru/help/select20.php?Lang=0

P.S. пытливость конечно хорошо - но не покидает ощущение, что вы что-то неверное делаете, просто такое копирование из таблиц БД в БД как то не очень практикуется именно запросами...
расскажите для чего это вам - возможно вам подскажут более легкий и правильный путь.

А вот хамить в ответ на попытки вам помочь - нехорошо.... некрасиво
ADSoft вне форума Ответить с цитированием
Старый 13.04.2021, 17:25   #6
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
А вот хамить в ответ на попытки вам помочь - нехорошо.... некрасиво
Вы правы. Хамить не хорошо. Мне это не нравится.
Однако вы можете наглядно рассмотреть и сравнить ваш подход и подход другого человека.
Вам не жалко написать более-менее готовый рабочий код. Вы даёте нормально понимаемые советы. В от время как некоторые больше вводят в запутанность заумными советами того, кто в теме пока слабо ориентируется. Прекрасно понимается девиз такого тумана, дескать "подсказать-то готовое легко, а ты вот мозгами-то пошурупь и сам пойми!"
Понимаете, есть у вас ЧУВСТВИТЕЛЬНОСТЬ того, что человек приходит с надеждой на ВНЯТНУЮ подсказку, а в ответ получает такое спесивое отношение с высоты "РАЗУМА"?
Я ведь не прошу написать код для курсовой или тому подобное (откуда и взялся озвученный девиз). Мне ТАК понятнее изучать предмет, который я изучаю ДЛЯ СЕБЯ, а не для учебной программы. Так сказать ПРЕЦЕДЕНТНОЕ понимание. и литературу я читаю, не сомневайтесь. Но иногда, без преподавателя, что-то не понятно, и хочется спросить У ЛЮДЕЙ, а не у книжек.
Человек, который получил те слова, которые получил, ничего полезного, ПОНИМАЕМОГО, а самое главное ДОБРОГО, мне не написал. На мой взгляд он просто умничает. Дескать я знаю, а ты нет, а значит ты глупый, а ну-ка, давай-ка, изучай вопрос так, как я считаю нужным. Причем об этом никто не просил. Была внятная просьба помочь. Дана схема задачи. Ты УМНЫЙ? Ты знаешь как это делается? НАПИШИ код этой строчки. Это не курсовой проект. Не сломаешься и деньги не потеряешь, если ХОЧЕШЬ помочь. Не позволяет религия и нравственность с характером так писать помощь? Вообще просто молчи. Не умничай.
В просьбе помочь при написании темы не было ни одного слова о том, что дескать поумничай и покажи куда смотреть, чтобы изучить и разобраться самому. Поверь, и смотрел и разбирался и не разобрался и пришел на форум к людям.
KAMLS вне форума Ответить с цитированием
Старый 13.04.2021, 17:27   #7
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
P.S. пытливость конечно хорошо - но не покидает ощущение, что вы что-то неверное делаете, просто такое копирование из таблиц БД в БД как то не очень практикуется именно запросами...
Скажем так, в процессе изучения SQL изучаю его возможности. Как-то так получается находить именно сложные задачи, которые может и не возможны к разрешению. В сети много кстати таких желаний, как скопировать все столбцы кроме некоторых. Вроде нашел что-то похожее на направление через UPSERT. Посмотрим, что получится. А так, в общем-то везде пишут, что нельзя так сделать.
KAMLS вне форума Ответить с цитированием
Старый 13.04.2021, 17:37   #8
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

UPSERT - это вставить, а если есть обновить. Кк это связано с вставкой части столбцов? Если хотите часть столбцов скопировать, то так и пишите...
FrosyaZZ вне форума Ответить с цитированием
Старый 13.04.2021, 17:39   #9
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
Кк это связано с вставкой части столбцов?
https://www.sqlite.org/lang_insert.html
Вот тут нашел. Там в предпоследнем абзаце о подобной логике говорится.
Ну, то есть вот сюда потом перейти надо
https://www.sqlite.org/lang_upsert.html
там 2.1. Examples

Последний раз редактировалось KAMLS; 13.04.2021 в 17:41.
KAMLS вне форума Ответить с цитированием
Старый 13.04.2021, 17:42   #10
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Так и я о том же. Это ИНСЕРТ, если конфликт, то АПДЕЙТ или НИЧЕГО.
FrosyaZZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных из Таблицы в Таблицу - MS Access nikolaynn2008 Microsoft Office Access 32 26.07.2016 10:12
Поиск по столбцу и копирование части таблицы с добавлением столбцов с формулами zoro9 Microsoft Office Excel 0 23.05.2016 16:13
Копирование данных из одной таблицы в другую согласно названиям строк и столбцов Анастасия Дмитриев Microsoft Office Excel 2 26.12.2011 09:50
копирование данных из таблицы в таблицу Sack Microsoft Office Access 1 16.09.2008 05:59
Как вывести названия всех столбцов таблицы в PL/SQL D-mon БД в Delphi 6 25.06.2008 11:10