2016-11-19 8 views
0

Я работал над Express-приложением, которое имеет форму, предназначенную для хранения строк и котировок.Одиночные кавычки, хранящиеся в базе данных Postgres

Некоторые из линий будут иметь одинарные кавычки ('), но в целом он может хранить информацию, и я могу ее поддерживать и хранить без проблем. Теперь, когда я хочу сделать pg_dump и иметь базу данных, помещенную в файл SQL, кавычки, похоже, заставляют некоторые вещи казаться немного неудобными в моем текстовом редакторе.

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

ответ

2

Одиночные кавычки в символьных типах данных: проблем нет. Вам просто нужно избегать их в строковых литералах.

Чтобы записать данные с помощью INSERT, вам необходимо указать все строковые литералы в соответствии с синтаксическими правилами SQL. Есть инструменты, чтобы сделать это для вас ...

Однако, pg_dump заботится о побеге автоматически. Режим по умолчанию выводит текстовый вывод для повторного импортирования с COPY (намного быстрее, чем INSERT), а одинарные кавычки здесь не имеют особого значения. И в режиме (не по умолчанию) csv символ котировки по умолчанию - это двойная кавычка (") и настраивается. The manual:

QUOTE

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

Формат определяется правилами для COPY, а не правилами синтаксиса SQL.