2016-11-19 4 views
0

줄 및 따옴표를 포함하도록 설계된 Express 응용 프로그램에서 작업했습니다.Postgres 데이터베이스에 작은 따옴표가 저장되었습니다.

일부 줄에는 작은 따옴표 (')가 있지만 전체적으로 정보를 저장할 수 있으며 아무 문제없이 백업 할 수 있습니다. 이제, 내가 pg_dump을하고 데이터베이스를 SQL 파일에 넣었 으면 따옴표로 인해 내 텍스트 편집기에서 약간의 문제가 나타나는 것처럼 보입니다.

작은 따옴표를 모두 이중으로 변경하는 방법을 만들어야 하나, 중요한 문제를 일으키는 일없이 그대로두고 데이터베이스에 다시 업로드 할 수 있습니까? 나는 사람들이 단일 인용문이나 이중 인용문을 포함하는 줄에 계속 입력한다는 것을 알고 있으므로 크게 도움이 될만한 해결책이나 대답을 알고 싶습니다.

답변

2

문자 데이터 형식의 작은 따옴표는 모두 전혀 아님입니다. 문자열 리터럴에서 제대로 이스케이프 처리해야합니다.

INSERT으로 데이터를 쓰려면 SQL 구문 규칙에 따라 모든 문자열 리터럴을 인용해야합니다. 당신을 위해 할 수있는 도구는 그러나Insert text with single quotes in PostgreSQL

  • , pg_dump 자동으로 탈출을 담당 ...이 있습니다. 기본 모드는 COPY (훨씬 더 빠르게 INSERT보다 빠름)으로 다시 가져올 텍스트 출력을 생성하며 작은 따옴표에는 특별한 의미가 없습니다. 그리고 (기본값이 아닌) csv 모드에서 기본 인용 문자는 큰 따옴표 (")이며 구성 가능합니다.

    QUOTE

    The manual:은 데이터 값이 인용 될 때 인용 문자 수 지정. 기본값은 큰 따옴표입니다. 이것은 1 바이트 문자 하나 여야합니다. 이 옵션은 CSV 형식을 사용할 때만 허용됩니다.

    형식은 COPY에 대한 규칙으로 정의되며 SQL 구문 규칙에 의해 정의되지 않습니다.

관련 문제