有没有办法将 postgres 表数据作为 json 导出到文件?我需要逐行输出,例如:
{'id':1,'name':'David'}
{'id':2,'name':'James'}
...
Run Code Online (Sandbox Code Playgroud)
编辑:postgres 版本:9.3.4
我正在运行 postgresql 9.3.4。我有一个包含 3 个字段的表:
id name addr
--- ---- ----
1 n1 ad1
2 n2 ad2
...
Run Code Online (Sandbox Code Playgroud)
我需要将数据移动到包含以下字段的新表:
id data
--- ----
1 {'name': 'n1', 'addr': 'ad1'}
2 {'name': 'n2', 'addr': 'ad2'}
...
Run Code Online (Sandbox Code Playgroud)
row_to_json对我来说不是解决方案,因为它也SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t增加id了结果。有没有办法在我的数据字段中选择我需要的字段(名称和地址)?
我有这两张表:
table1:
id | name
---------
1 | john
2 | jack
table2:
id | profile_id | institution
-----------------------------
1 | 1 | SFU
2 | 1 | UBC
3 | 2 | BU
4 | 2 | USC
5 | 2 | SFU
Run Code Online (Sandbox Code Playgroud)
如果我想使用他的用户 ID 获取有关用户的所有信息,我可以简单地使用以下方法加入他们:
select a.id, a.name, b.institution from table1 a, table2 b
where a.id = USER_ID and a.id = b.profile_id
Run Code Online (Sandbox Code Playgroud)
对于 USER_ID = 1 返回:
id | name | institution
-----------------------
1 | john | SFU …Run Code Online (Sandbox Code Playgroud) 我有一个 7GB 的单个表的转储文件。我尝试使用
mysql -u root -p DB_NAME < .SQL FILE
Run Code Online (Sandbox Code Playgroud)
但是我在任务管理器中没有看到任何活动。CPU 是 00,RAM 是 5,700 K。我不知道它是真的在恢复它还是发生了错误。有没有其他方法可以恢复这个?我在 Windows 7 上运行它。
我的 ubuntu 12.04 服务器上有 mysql 5.5。这个命令:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
工作完美,但这给了我错误:
mysqldump -u root -p mydb_name > a.sql
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
Run Code Online (Sandbox Code Playgroud)
在 my.cnf 文件中,套接字设置为:
socket = /home/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
所以我不知道 /var/run/mysqld/mysqld.sock 来自哪里。谢谢。