Quando tento usar \i
em um arquivo que não está na pasta psql.exe, ele diz C:: permission denied
. Por exemplo, eu tenho um arquivo com comando SQL em C:\Users\Work\Desktop\School Work\load_database.sql
e quando digito \i "C:\Users\Work\Desktop\School Work\load_database.sql"
ele diz C:: permission denied
. Como posso consertar isso?
Eu encontrei um trabalho por aqui onde você copia o arquivo .sql para a mesma pasta em que o psql.exe está.
A propósito, \i significa importação?
Você acabou de se deparar com uma peculiaridade do
psql
Windows.No meu comentário, eu só queria excluir a possibilidade de você realmente não ter a permissão necessária. Então descobriu-se que, mesmo no Windows, você precisa usar barras 'normais' em vez de barras invertidas, ou seja:
deve funcionar bem, independentemente de qual pasta você inicia
psql
. Observe que usei aspas simples - com aspas duplas você temColoque o arquivo em algum diretório com permissão total para todos, como 'c:\tmp'
OU
Defina privilégios de leitura para o arquivo que deseja importar.
Coloquei a permissão de leitura 'Todos'.
Depois de importar o arquivo, você pode revogar essa permissão.