我使用Export> Copy(而不是Copy> SQL,它實際上是我需要的)使用PHPPgadmin進行PostgreSQL備份。SQL:將備份文件從複製格式轉換爲插入格式
文件包含的條目是這樣的:
COPY tablename(id, field) FROM stdin;
...
如何這個文件到SQL格式轉換?
INSERT INTO tablename...
我想使用Pgadmin來使用執行SQL命令導入此文件。
我使用Export> Copy(而不是Copy> SQL,它實際上是我需要的)使用PHPPgadmin進行PostgreSQL備份。SQL:將備份文件從複製格式轉換爲插入格式
文件包含的條目是這樣的:
COPY tablename(id, field) FROM stdin;
...
如何這個文件到SQL格式轉換?
INSERT INTO tablename...
我想使用Pgadmin來使用執行SQL命令導入此文件。
您不能將其轉換爲SQL格式(至少不能直接)。
如果您不能再出口,那麼簡單的選擇是繞過phpPgAdmin的, 登錄在你的服務器和運行像
cat [yourdump.sql] | psql [your connections args]
如果您不具備對服務器的shell訪問,您可以嘗試上傳文件(通過SFTP或FTP)並通過"COPY <table> FROM <path_to_file_on_server>"
通過phpPgAdmin加載。但是如果有很多表格,你必須(我相信)分割文件並一次完成一個表格。
我不知道一種方法或工具,它可以「COPY」轉換成「INSERT」語句。
但是使用「pg_dump」命令行工具,您可以使用「INSERT」而不是「COPY」語句創建數據庫轉儲文件。簡單的使用「--column-inserts」參數(可能是「--inserts」也適合你)。
編輯:
你可以做的是:
導入您的數據庫轉儲文件到新創建的數據庫
psql -U <dbuser> <database> < dump.sql
然後用「--c」創建一個postgres轉儲olumn-插入」從該數據庫
pg_dump --column-inserts -U <dbuser> <database> > dumpWithInserts.sql
你可以試試,因爲PostgreSQL的9.3
例如COPY FROM PROGRAM語法,可用: COPY tbl_customers (id, address_id, insurance_id, fullname, secret_code ...) FROM PROGRAM 'echo "1 2 \N Ivan Ivanov 42 ..."'
您的意思是phpPgAdmin,不是嗎? (Pgadmin是桌面客戶端) – leonbloy 2010-05-13 16:19:03