Неверный синтаксис ввода в PostgreSQL

670
Gemma Davies

Я пытаюсь импортировать CSV-файл в PostgreSQL в таблицу. Таблица настроена как здесь:

Настройка таблицы:

enter image description here

Мой CSV-файл разделен запятыми, и я приложил текст, который имеет запятые в речевых метках. У него нет заголовков. Когда я иду, чтобы загрузить данные, используя показанные команды, я получаю сообщение об ошибке

Ошибка:

enter image description here

Я думаю, что это может иметь какое-то отношение к первому столбцу PatientId, настроенному на автоматическое создание последовательного номера? В моем CSV числа в этом столбце уже являются последовательными.

Что мне нужно сделать, чтобы это успешно загрузить, пожалуйста.

ОБНОВЛЕНИЕ - я теперь изменил свой CSV, чтобы иметь заголовки и изменил код, чтобы вызывать только в определенных помеченных столбцах, так что пропускает appId и автоматически генерирует номер, как указано в таблице:

КОПИРОВАНИЕ назначений («PatientID», «APPT», «StaffId», «LungCapacity», «Примечание») FROM '/home/user/VBoxShare/Appointment.csv' WITH HEADER CSV;

Теперь я получаю эту ОШИБКУ: дополнительные данные после последнего ожидаемого столбца КОНТЕКСТ: встречи КОПИЯ, строка 2: «1,4,18 / 04 / 2010,4906475184,5163 ,,» Я проверил CSV, и после него нет никаких дополнительных символов данные. Что может быть причиной этой ошибки?

0
Интересно, не орфографическая ли "европейская" причина вашей проблемы? DavidPostill 8 лет назад 0
Я не запустил эту строку кода, но спасибо, я исправил это Gemma Davies 8 лет назад 0

2 ответа на вопрос

0

Тип данных serial, используемый в столбце appId, предназначен для автоматической генерации уникальных значений. Попробуйте импортировать файл .csv без столбца appId или измените таблицу так, чтобы значение устанавливалось вручную.

Я попытался загрузить данные после извлечения данных первого столбца, но затем пытается поместить значения второго столбца в первый столбец, и это вызывает ошибку. Мне нужен столбец для автоматической генерации уникального идентификатора, так как планировалось бы связать его с системой встреч с графическим интерфейсом, чтобы каждому требовался уникальный идентификатор встречи, а не один, созданный вручную. Gemma Davies 8 лет назад 0
Должен быть способ указать, какой столбец из csv идет в базу данных. Я не совсем уверен, что синтаксис в postgresql, но это должно быть что-то вроде этого. `code` 8 лет назад 0
`code`SET DataStyle TO европейских COPY встреч (" Patient ID "," StaffId "," LungCapacity ") FROM '/home/user/VBoxShare/Appointment.csv' С CSV;` код` 8 лет назад 0
Спасибо, тапио - я пробовал это, но я все еще испытываю ошибку. Также это не определяет столбцы для апплетов заметок. Я добавил их в код, и я все еще получаю эту ошибку: Gemma Davies 8 лет назад 0
RROR: синтаксическая ошибка в или около «COPY». ЛИНИЯ 2: COPY-встречи («PatientId», «StaffId», «lungCapacity») ^ ********** Ошибка ********** ОШИБКА: синтаксическая ошибка в или около "COPY" SQL-состояния: 42601 Символ: 28 Gemma Davies 8 лет назад 0
0
Gemma Davies

Я наконец-то получил решение этой проблемы, добавив заголовок к своему CSV и импортировав все столбцы, как показано ниже:

КОПИЯ встреч ("appId", "PatientID", "APPT", "staffId", "lungCapacity", "note") FROM '/home/user/VBoxShare/Appointment.csv' WITH HEADER CSV;