十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用 CTE 来处理
10余年的柳林网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整柳林建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“柳林网站设计”,“柳林网站推广”以来,每个客户项目都认真落实执行。
--测试表与测试数据
CREATE TABLE test_tree (
test_id INT NOT NULL,
pid INT,
test_val VARCHAR(10),
PRIMARY KEY (test_id)
);
INSERT INTO test_tree VALUES(1, NULL, '.NET');
INSERT INTO test_tree VALUES(2, 1, 'C#');
INSERT INTO test_tree VALUES(3, 1, 'J#');
INSERT INTO test_tree VALUES(4, 1, 'ASP.NET');
INSERT INTO test_tree VALUES(5, 1, 'VB.NET');
INSERT INTO test_tree VALUES(6, NULL, 'J2EE');
INSERT INTO test_tree VALUES(7, 6, 'EJB');
INSERT INTO test_tree VALUES(8, 6, 'Servlet');
INSERT INTO test_tree VALUES(9, 6, 'JSP');
INSERT INTO test_tree VALUES(10, NULL, 'Database');
INSERT INTO test_tree VALUES(11, 10, 'DB2');
INSERT INTO test_tree VALUES(12, 10, 'MySQL');
INSERT INTO test_tree VALUES(13, 10, 'Oracle');
INSERT INTO test_tree VALUES(14, 10, 'SQL Server');
INSERT INTO test_tree VALUES(15, 13, 'PL/SQL');
INSERT INTO test_tree VALUES(16, 15, 'Function');
INSERT INTO test_tree VALUES(17, 15, 'Procedure');
INSERT INTO test_tree VALUES(18, 15, 'Package');
INSERT INTO test_tree VALUES(19, 15, 'Cursor');
INSERT INTO test_tree VALUES(20, 14, 'T-SQL');
-- 需要在 With 后面,加一个 recursive 关键字。否则会提示错误。
WITH recursive StepCTE
(test_id,
pid,
test_val,
Lev)
AS
(
SELECT
test_id,
pid,
test_val,
1 as Lev
FROM
test_tree
WHERE
test_id IN (1,6,10)
UNION ALL
SELECT
T.test_id,
T.pid,
T.test_val,
CTE.Lev + 1
FROM
test_tree T , StepCTE CTE
WHERE
T.pid = CTE.test_id
)
SELECT
test_id, pid, test_val, Lev
FROM StepCTE;
test_id | pid | test_val | lev
---------+-----+------------+-----
1 | | .NET | 1
6 | | J2EE | 1
10 | | Database | 1
2 | 1 | C# | 2
3 | 1 | J# | 2
4 | 1 | ASP.NET | 2
5 | 1 | VB.NET | 2
7 | 6 | EJB | 2
8 | 6 | Servlet | 2
9 | 6 | JSP | 2
11 | 10 | DB2 | 2
12 | 10 | MySQL | 2
13 | 10 | Oracle | 2
14 | 10 | SQL Server | 2
15 | 13 | PL/SQL | 3
20 | 14 | T-SQL | 3
16 | 15 | Function | 4
17 | 15 | Procedure | 4
18 | 15 | Package | 4
19 | 15 | Cursor | 4
(20 行记录)
上面的例子, 是从 根节点, 向下递归查找所有子节点的处理。
安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相 应的配置。配置远程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf, 其中pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置PostgreSQL数据库服务器的相应的参数。 下面介绍配置的步骤:
1.修改pg_hba.conf文件,配置用户的访问权限:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
# IPv6 local connections:
host all all ::1/128 trust
其中红色标识的内容为新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验 证。在我们的环境中,我们需要在主机192.168.1.5上使用postgres用户访问192.168.1.9上的PostgreSQL数据库。
2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。
定位到#listen_addresses='localhost'。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求,通过将改行内容修改为listen_addresses='*'来允许数据库服务器监听来自任何主机的连接请求:
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)
修改之后,保存并退出,然后重起数据库,就可以在在远程机器上访问PostgreSQL数据库了。
另外,数据库管理小贴士:
matrix数据库使用的是PostgreSQL数据库。你可以安装一个类似phpmyadmin的管理
你好,
不可以的。因为shell不是postgresql的客户端,
当然不可以执行其sql语句。
希望回答对您有帮助.
postgres实现导出和导入
用postgres 的pg_dump可以实现从从postgres数据库中导出数据。
[1]只导出所有对象的数据库结构
C:\pg_dump -f DDDDDD.sql -i -C -E UTF8 -n public -s -U portal -h localhost -W portal
-i 是为了兼容数据库版本
-C 包括创建数据库的语句
-E 设定导出数据的编码
-n 是Scheme的名称
-U 是用户名称
-h 是数据库服务器的名称
-W 是用强制密码验证
-s 只导出数据库结构
最后一个参数,当然就是数据库名称了
[2]导出所有对象的数据库结构和数据
C:\pg_dump -f DDDDDD.sql -i -C -E UTF8 -n public -U portal -h localhost -W portal
没有-s参数
[3]只导出所有的表数据
C:\pg_dump -f DDDDDD.sql -i -a -C -E UTF8 -n public -U portal -h localhost -W portal
-a 只导出数据
数据导入
[1]c:\psql -f DDDDDD.sql -h 192.168.1.233 -U myuser -W myportal
执行就可以实现导入了。
如果数据库myportal 不存在,要先创建数据库
createdb -U postgres -h 192.168.1.233 myportal
然后再执行上面的导入语句就可以了。
[2]psql -hlocalhost -U myuser -d myportal DDDDDD.sql
执行语句导入数据就可以了。
别用foxpro了,换个其他数据库吧
免费的mysql,postgresql
收费的sqlserver,都可以