|
|
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Добрый день, мне нужно сравнить таблицы из разных БД, соответствуют ли она друг другу на количество адресов, домов и улиц. По названиям схемы и таблицы идентичны. какой запрос можно использовать в этом случае в POSTGRESQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 13:20:13 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, Используйте dblink ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 13:44:48 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
ARTURV, Я пробовала сделать так CREATE TABLE my_tbl AS SELECT * FROM dblink('dbname=mybd', 'SELECT * FROM my2_tbl') и мне показывает ошыбку ERROR: a column definition list is required for functions returning "record" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 20:53:25 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, Как то так select dblink_connect ('dbname=DB21300Full host=localhost user=postgres password=postgres'); select * from dblink ('select * from имя таблицы where условие') ]as имя таблицы(имя поля тип поля,.......); Читайте документацию Прекрасно работает, например, копирую данные из одной БД в другую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 21:20:55 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
ARTURV,Большое спасибо, сейчас буду пробовать. Я просто новичок в этом, еще ни разу не работала с таблицами из разных БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 21:25:06 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, Исправление select * from dblink ('select список полей from имя таблицы where условие') ]as имя таблицы(имя поля тип поля,.......); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 22:50:05 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
http://www.postgresql.org/docs/current/static/dblink.html http://www.postgresql.org/docs/current/static/contrib-dblink-function.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 23:08:14 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Незнаю как задать условие, чтобы сделать выборку улиц которые есть в одной таблице а в другой нет. Названия полей, таблиц и схем в БД идентичны. И можно ли использовать команду NOT IN? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 20:53:01 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Уже разобралась. select dblink_connect ('dbname=mydb host=111.11.11.1 user=me password=111111'); SELECT * FROM dblink('dbname=mydb', 'select cod_street, name_street from street_tbl') AS t1(cod_street_1 INTEGER, name_street_1 VARCHAR) WHERE cod_street_1 not in (select cod_street from street_tbl); Но очень долго думает и выдает такую ошибку ERROR: could not establish connection DETAIL: could not connect to server: Connection timed out Is the server running on host "111.11.11.1" and accepting TCP/IP connections on port 1111? В чем может быть причина ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 21:25:06 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Интересует правильно ли я создала запрос??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 21:27:21 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
ХристинаУже разобралась. Код: sql 1. 2. 3. 4. Но очень долго думает и выдает такую ошибку ERROR: could not establish connection DETAIL: could not connect to server: Connection timed out Is the server running on host "111.11.11.1" and accepting TCP/IP connections on port 1111? В чем может быть причина ?? во первых если вы создали [неименованное] соедиение dblink_connect()-ом, то имя бд повторно в dblink() отсылать не нужно. но ошибка у вас еше до этого. похоже 111.11.11.1 вас (т.е. сервер на котором вы выполняете попытку соединения) не слушает. проверьте [с вашего сервера] или psql-ем ткнитесь к 111.11.11.1, или телнетом по 5432 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 21:55:49 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
ХристинаУже разобралась. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 22:11:23 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
лопата, Спасибо за подсказку. Ошибку с повторением исправила. Телнет на компьютере не работает. Какой запрос для проверки в postgresql надо использовать ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2014, 22:56:13 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христиналопата, Спасибо за подсказку. Ошибку с повторением исправила. Телнет на компьютере не работает. Какой запрос для проверки в postgresql надо использовать ??? 1. нужно убедиться, что 111.11.11.1 слушает вас (тот сервер, на котором вы выполняете запросы) по 5432. это вообще не про dblink и не про запроосы. Даже к PosgreSQL может не иметь отношения (только в части postresql.conf [listen_addresses =] + pg_hba.conf) а например может оказаться вопросом про iptable и прочие фаерволы вопрос: 111.11.11.1 -- это другая какая-то машина, или вы сами к себе по сетевому интерфейсу ломитесь ? (если второе -- то уберите из строки подключения host=111.11.11.1 -- станете ходить иначе (через т.н. local pipe, если конечно сервер -- не винда)) далее -- напрягите сетевого администратора, чтобы та машина, к которой вы хотите обратиться, слушала ту машину, с которой dblink обращается (это не та машина [клиент], где вы пишете запрос, а та машина, где запрос, вызывающий dblink, исполняете) по тому сетевому интерфейсу, по которому обращаететсь (host=....). Вот пусть он с телнетом и прочими бубнами походит вокруг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2014, 09:32:20 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
лопата, Я подключаюсь из дома к удаленному рабочему столу компании А, конектиться стараюсь с БД компании Б в другую БД компании Б. Мне нужно обратиться к администратору компании Б? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2014, 23:41:42 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, вам нужно чтобы сервер компании Б[с БД компании Б], видел "другую БД компании Б" (а "другая БД компании Б" слушала (т.е. разрешала соединрение) с 1-м сервером компании Б. Если сервер один и тот же, но на нем или 2 базы в одном инстансе, или 2 интсанса по разным портам - то вам надо изменить строку подключения (убрать из неё хост и, возможно, добавить порт). Если же там ,на втором сервере, 2 сетевых интерфейса, то возможно вам надо просто обратиться к нему (с первого сервера) по другому ip. а уж к кому вы обратитесь -- ваше дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2014, 08:02:26 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Скажите пожалуйста как с помощью dblink делать INSERT из одной таблицы БД1 в другую с БД2 ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 13:36:42 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, удобнее -- со стороны вставки Код: sql 1. 2. 3. 4. 5. 6. 7. хотя можно и наоборот, но там каждую строку данных придется в тексты обращать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 14:04:40 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
лопата, Спасибо!! Сделала запрос по вашим указаниям, но мне выбивает ошибку ERROR: type "serial" does not exist LINE 73: id_n FROM a_tbl ') AS T (id_a1 SERIAL, nick_a ... Но там есть поле с типом serial, в чем может быть причина ??? И не нужно делать в этом запросе dblink_connect ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 15:42:53 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христиналопата, Спасибо!! Сделала запрос по вашим указаниям, но мне выбивает ошибку ERROR: type "serial" does not exist LINE 73: id_n FROM a_tbl ') AS T (id_a1 SERIAL, nick_a ... Но там есть поле с типом serial, в чем может быть причина ??? И не нужно делать в этом запросе dblink_connect ?? нет такого типа serial в postgresql serial это синтаксическая обертка на integer+create sequence+default nextval(...) PS: вы пытаетесь использовать базу не зная основ и даже не прочитав (не такую уж длинную) документацию. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 15:50:15 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
присоединяюсь к Maxim Boguk<> serial это синтаксическая обертка на integer+create sequence+default nextval(...) <> + OWNED BY [for drop cascade when column dropped] не только ртфм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 16:10:54 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Спасибо, SELECT работает. Но когда выполняю команду INSERT то выбивает ошибку ERROR: INSERT has more target columns than expressions. Хотя количество полей совпадает, проверяла несколько раз. Может быть проблема в чем-то другом ??? PS Простите, если вам мои вопросы кажутся глупыми, документацию обязательно почитаю еще раз. Я пока только учусь и прошу помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 21:30:14 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, приведите код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 21:32:12 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
лопата, INSERT INTO a_tbl (id_a,....id_keep_filter) select dblink_connect ('dbname=db1 host=111.11.11.1 user=user password=111'); SELECT * FROM dblink('SELECT id_a,.....1,null,null FROM a_tbl') AS T(id_a,nick_a1 VARCHAR,num_a1 VARCHAR .....id_keep__filter INTEGER) WHERE num_a1 like '20146'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 22:09:47 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
ХристинаМожет быть проблема в чем-то другом ??? Проблема классическая. Находится по другую сторону монитора. Вы написали какую-то хрень вместо реального текста запроса. Это действительно проблема: делать то, что Вас не просят. А мелкие глупые вопросы не читавших документацию - здесь к ним привыкли, отвечают вполне спокойно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 22:16:09 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христиналопата, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. т.е. схема проста: в сеансе вы "открываете" встроенного клиента к другой бД -- открыватее соединение. а дальше в нем, в открытом соединении, делаете свое черное дело -- запрашиваете на свою сторону сторониие данные, или напротив, выполняете dml [и даже ddl] на стороне. единственное отличие [от обычных клиентов] -- вы получаете не "рекордсеты" и т.п. объекты, а табличные наборы, которые можете джойнить (с объектами местной бд), фильтровать и т.п. средствами SQL. PS при такой плотности общения с темой, лет за 5 вы научитесь что-то передавать туда и обратно. не надо боятся приводить ошибочный код, а тем паче его писать , и тут же смотреть образцы в rtfm. кожение -- это наработка рефлексов , большей частью. Редко, когда требуется что-то большее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 22:46:19 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
/\/\/\/\/\/\ХристинаМожет быть проблема в чем-то другом ??? Проблема классическая. Находится по другую сторону монитора. Вы написали какую-то хрень вместо реального текста запроса. Это действительно проблема: делать то, что Вас не просят. А мелкие глупые вопросы не читавших документацию - здесь к ним привыкли, отвечают вполне спокойно.скорее всего ТС написал[а] (сократив) то, что пыталась выполнить -- т.е. всавить в таблицу возврат dblink_connect (который, как известно -- строка, если я ничего не запамятовал). на это и произошла упомянутая выше ругань -- возврат "Ok" не захотел ложиться в кучку полей, несколько более числом, чем 1. а дальнейший запрос -- который оказался просто выборкой из открытого соединеия (и никуда не собирался вставиться, а просто был синтаксически безвредным) -- просто не выполнился по причине ошибки в предыдущем стейтменте батча. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2014, 22:57:37 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
лопата, Последний запрос - это не просто выборка. Там зачем-то выбираются значения NULL, которые можно выбрать на клиенте, а не на удаленном сервере. И фильтрация так же идет на клиенте, а не на удаленном сервере. То есть получаем большее количество строк с более широкими записями. Это совершенно не нужно. А так да, автору можно попробовать обратиться к форме вызова процедуры: Код: sql 1. Это из RTFM . После того, как этот запрос заработает с выборкой нужного количества полей и строк, к нему сверху можно приписать конструкцию INSERT INTO .... (....) для непосредственной вставки. Если автор желает воспользоваться именованными соединениями, то настоятельно рекомендую обернуть в анонимные блоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2014, 09:41:45 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
/\/\/\/\/\/\лопата, Последний запрос - это не просто выборка. Там зачем-то выбираются значения NULL, которые можно выбрать на клиенте, а не на удаленном сервере. И фильтрация так же идет на клиенте, а не на удаленном сервере. То есть получаем большее количество строк с более широкими записями. Это совершенно не нужно. А так да, автору можно попробовать обратиться к форме вызова процедуры: Код: sql 1. Это из RTFM . После того, как этот запрос заработает с выборкой нужного количества полей и строк, к нему сверху можно приписать конструкцию INSERT INTO .... (....) для непосредственной вставки. Если автор желает воспользоваться именованными соединениями, то настоятельно рекомендую обернуть в анонимные блоки. узбагойтеса, имелось в виду, что "пазледний заброз" никуда не вставляедза. а пытаедся вставидса аккурат возврат дблинк-коннекта. в ртфм афтара отсылали недели 2 тому. но афтар боицца чо-то делать руками в темпе чуть быстрее, чем одна попытка в неделю. т.ч. тут напирать с особостями работы клиента с БД (т.е. разъяснять, что фильтрация дешевле на сервере, чем на клиенте) -- пока рано, евпочя. пусть хоть что-то начнёт делать. такошто зо всеми вашими зловесами в предыдущем постинге згорее зогласен я бы вощбе рекомендовал аффтару начать с получения SELECT 1; с удаленного сервера, ну или чего попроще из информативного -- SELECT version(); SELECT pg_.....() т.е. с примитивов, постепенно обдумывая, что же происходит на той стороне. а анонимные блоки вовсе не обязательны, если вы сами контролируете сеанс, или транзакцию (не отдавая пулеру возможность подменить вам соединение) , но в большинстве сложных случаев -- удобны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2014, 12:14:12 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
Христина, вот примерно таких пассов руками поделайте: наработка рефлексов Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2014, 12:57:20 |
|
||
|
робота с таблицами из разних бд
|
|||
|---|---|---|---|
|
#18+
лопата,Все пошло, все работает, очень Вам благодарна !!! авторPS при такой плотности общения с темой, лет за 5 вы научитесь что-то передавать туда и обратно. Я знаю, просто у меня еще маленький ребенок и мало свободного времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 14:21:48 |
|
||
|
|

start [/forum/search_topic.php?author=Kanivets&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 629ms |
| total: | 787ms |

| 0 / 0 |
