Приветствую всех!
С PostgreSQL дело ранее не имел, только с MySQL.
Дали бекап БД, который как ни как не выполняется.
COPY groups (id, name, access) FROM stdin; 1 user 1 2 operator 2 3 expert 4 4 expert_operator 8 5 expert_admin 12 6 admin 31 \.
LINE 2: 1 user 1 ^ ********** Ошибка ********** ERROR: syntax error at OR near "1" SQL state: 42601 Характеристика:44
Почитайте
Почитайте синтаксис команды. У меня подозрение, что разделитель какой-то не такой какой нужен.
http://postgresql.ru.net/manual/sql-copy.html
Почитал.. чуть
Почитал..
чуть изменил запрос на такой
Структура таблицы такая:
К сожалению не помогает..
и все таки непонятно
COPY "tst"."tst" ("Id", "Name", "Opt") FROM stdin;
1 '1' '11'
2 '2' '22'
\.
не ругается, но и записи не вставляет.
Запускаю в студии. Почему же оно не вставляет данные???
Запустите через psql. Если
Запустите через psql. Если сработает, то вопросы не сюда, а к разрабочикам студии, хотя я могу предположить. Дело в том что stdin!
COPY предназначен для
COPY предназначен для пакетной загрузки/выгрузки больших объемов данных и берет данные из потока или файла.
я посмотрел - у
я посмотрел - у меня такой же синтаксис команды прекрасно работает. Правда в pgAdmin'е проверить не смог (почему-то не активна кнопка ОК в окне восстановления из бекапа) Но в EMS SQL Manager все работает.
Вообщем ещё раз
Вообщем ещё раз прочитал мануал, там написано
Т.е. нужно назначить привелегию на таблицу для соотв. функций. Поискал и в мануале, и в pgAdmin. Ничего подобного не нашел.
Может проблема в этом?
Правда казус: сижу то я от суперюзера..
В этом случае, я
В этом случае, я полагаю, была бы совсем другая ошибка.
Попробуйте сделать бекап со своей базы своим pgAdmin'ом и посмотрите как он сформирует файлик, потом попробуйте загрузить его, что он на это скажет..
Мистика
Чёрт побери - вот сволочь то а. Единственное, что на ум приходит.
Сделал бекап, там такая форма
Причём этот же код не выполняется! Вот абсурд. Пепец блин.
Я вот посмотрел
Я вот посмотрел на ваше и на бэкап и вижу, что в бэкапе разделитель табуляция, а у вас похоже частично пробелы, частично табуляция. В качестве разделителя должен быть ОДИН символ. Если табуляция, то одна, если пробел, то ОДИН!
сейчас
сейчас переносил свою базу на другой сервер (довольно муторное занятие оказалось!)
...и действительно COPY не стала ничего делать, когда я ее запускал из редактора SQL
А вам выражение
А вам выражение "FROM stdin" ни о чём не говорит?
говорит... я
говорит... я пробовал из файла D:\бла-бла-бла а но не смог найти мой файл