У меня есть таблица с именем «myTable» в моей базе данных PostgreSQL, которая имеет 4 столбца - id
, non_keyword_columnA
, non_keyword_columnB
и group
.
Структура таблицы следующая:
Column | Type | Modifiers
--------------------+------------+------------------------------------------
id | integer | not null default nextval('myTable_id_seq'::regclass)
non_keyword_columnA | integer |
non_keyword_columnB | integer |
group | integer | not null
Foreign-key constraints:
"tablename_group_fkey" FOREIGN KEY ("group") REFERENCES groups(id)
Я хочу вставить данные в эту таблицу с помощью оболочки, и я использую следующий код, чтобы сделать это:
sudo /usr/sbin/chroot environment_path_here su - username -c "psql -A -z -c \"INSERT INTO myTable (non_keyword_columnA ,non_keyword_columnB ,"group") VALUES (1,2,(SELECT id from groups WHERE name='someGroupName'));\""
Я не являюсь экспертом вБазы данных, но я понимаю, что группа - это ключевое слово, которое можно использовать в psql-запросах, если использовать его с двойными кавычками, которые я делал в приведенном выше сценарии.
Но получаю ошибку как
ERROR: syntax error at or near "group"
LINE 1: ...RT INTO myTable(entity,machine,group) VAL...
^`
Если я вхожу в среду вручную и затем выполняю запрос psql, тогда запрос выполняется успешно, и строка вставляется, но ничего не работает через сценарий оболочки.
Я пробовал различные перестановки и комбинации, чтобы попытаться использовать их в качестве ключевого слова escape-группыиспользуя эти комбинации:
sudo /usr/sbin/chroot environment_path_here su - username -c "psql -A -z -c \"INSERT INTO myTable (non_keyword_columnA ,non_keyword_columnB ,\""group"\") VALUES (231,3355,(SELECT id from groups WHERE name='releventGroupName'));\""
sudo /usr/sbin/chroot environment_path_here su - username -c "psql -A -z -c \"INSERT INTO myTable (non_keyword_columnA ,non_keyword_columnB ,"\"group\"") VALUES (231,3355,(SELECT id from groups WHERE name='releventGroupName'));\""
Но ни одна из них до сих пор не работала.Я не эксперт в оболочке, так что, возможно, я допустил здесь какую-то действительно глупую ошибку.Любая помощь будет оценена.