PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 5. ���ݶ��� | Fast Forward | Next |
һ�� PostgreSQL ���ݿ⼯Ⱥ ����һ���������������ݿ⡣�û����û�����������Ⱥ�ķ�Χ�� �ǹ���ģ������������ݲ����ǹ���ġ��κθ�������������Ŀͻ����Ӷ�ֻ �ܷ�����һ�����ݿ�������ݣ������Ǹ������������������ġ�
ע��: һ����Ⱥ���û�����һ��Ҫ�з��ʼ�Ⱥ���������ݿ��Ȩ�ޡ� �����û�������˼�Dz�����ͬ���û���Ҳ���ǣ���ͬһ����Ⱥ������� ���ݿ��ﶼ�н� joe ���û�������ϵͳ�������ó� ֻ���� joe ����ijЩ���ݿ⡣
һ�����ݿ����һ������������ ģʽ�� ģʽ�ְ�����ģʽ���������������Ķ������������ͣ������� �Լ���������ͬһ�������������ڲ�ͬ��ģʽ��ʹ�ö����ᵼ�³�ͻ�� ���磬schema1 �� myschema ������������ mytable �ı������ݿⲻͬ��ģʽ�����ϸ����ģ� һ���û����Է����������ӵ����ݿ��е�����ģʽ�еĶ��� ֻҪ����Ȩ�ޡ�
������Ҫģʽ��ԭ���кöࣺ
�������û�ʹ��һ�����ݿ��������������û���
�����ݿ������֯�����飬�����Ǹ����ڹ���
��������Ӧ�ÿ��Է��ڲ�ͬ��ģʽ�У� �������ǾͲ����������������ֳ�ͻ��
ģʽ�����ڲ���ϵͳ��ε�Ŀ¼��ֻ����ģʽ����Ƕ�ס�
Ҫ����һ��ģʽ��ʹ������ CREATE SCHEMA�� ������ѡ���ģʽ���֡����磺
CREATE SCHEMA myschema;
Ҫ�������߷�����ģʽ�еĶ���д��һ�������ε������� ������ְ���ģʽ���Լ�����������������֮����һ�����ֿ���
schema.table
�����ڼ����ǽ�ֻ���۱���������������������������������ͣ��������ͺͺ�������
ʵ���ϣ���һ������
database.schema.table
����Ҳ����ʹ�ã���Ŀǰ��ֻ��Ϊ�˺� SQL ����ʽ�ϼ��ݡ� �����д��һ�����ݿ�������ô��������㵱ǰ���ӵ����ݿ�ͬ����
Ҫ����ģʽ�ﴴ��һ������
CREATE TABLE myschema.mytable ( ... );
�����ķ������κ���Ҫһ�������ֵĵط��������ã� �����ı���������������һ��Ҫ�������ݷ������
���һ��ģʽ�ǿյģ�����������Ķ����Ѿ�ɾ��������ôɾ��һ��ģʽ������
DROP SCHEMA myschema;
Ҫɾ��һ���������ж����ģʽ��ʹ��
DROP SCHEMA myschema CASCADE;
���� Section 5.10 ��ȡ�������Щ�������� �Ķ�����һ����Ƶ�������
ͨ�����봴��һ������ӵ�е�ģʽ����Ϊ����һ����������û� �ڶ������õ�ģʽ�еĻ�ķ�������������£�
CREATE SCHEMA schemaname AUTHORIZATION username;
����������ʡ��ģʽ���֣���ʱģʽ�������û���ͬ���� ���� Section 5.8.6 ��ȡ������� �����ó��ϡ�
�� pg_ ��ͷ��ģʽ���DZ�����ϵͳʹ�õģ� �û����ܴ������������֡�
��ǰ���С�������û�������κ�ģʽ���־ʹ����˱� ȱʡʱ�������ı��Լ����������Զ��ŵ�һ������"public" ��ģʽ��ȥ�ˡ�ÿ�������ݿⶼ����һ��������ģʽ����ˣ�����������ǵ�Ч�ģ�
CREATE TABLE products ( ... );
��
CREATE TABLE public.products ( ... );
ȫ�Ƶ�����д�����dz��Ѿ�������������ò�Ҫ��Ӧ����ֱ�� д���ض���ģʽ������ˣ���ͨ��������δ���ε����� ���õģ�������������ֻ�б����֡�ϵͳͨ������һ������·�� ���ж�һ���������ĸ������·����һ����Ҫ���ҵ�ģʽ�б� ������·�����ҵ��ĵ�һ����������ѡ���ı����������·���� û��ƥ�����ô�ͱ���һ������ʹƥ�������������ݿ������� ģʽ�д���Ҳ��ˡ�
������·���еĵ�һ��ģʽ������ǰģʽ�������������ĵ�һ��ģʽ֮�⣬ �������� CREATE TABLE û������ģʽ����ʱ���½��� ���ڵĵط���
Ҫ��ʾ��ǰ����·����ʹ����������
SHOW search_path;
��ȱʡ�������У���������Ķ�����
search_path -------------- $user,public
��һ��Ԫ��������Ҫ����һ���͵�ǰ�û�ͬ����ģʽ�� ��Ϊ��û��������ģʽ���ڣ�����������¼�����ԡ��ڶ���Ԫ��ָ�� �����Ѿ������Ĺ���ģʽ��
����·���д��ڵĵ�һ��ģʽ�Ǵ����¶����ȱʡλ�á� �����Ϊʲôȱʡ�Ķ��ᴴ���� public ģʽ���ԭ�� ������κ��������������ö�����û����ģʽ���� �����ģ����ݱ�������߲�ѯ�������ôϵͳ����� ����·����ֱ���ҵ�һ��ƥ��Ķ�����ˣ���ȱʡ������� �κ�δ���εķ���ͬ��Ҳֻ������ public ģʽ��
Ҫ���µ�ģʽ�ŵ�·��������������
SET search_path TO myschema,public;
������������ʡ���� $user ����Ϊ���� ������������Ҫ������Ȼ�����ǾͿ��Բ��ü�ģʽ���η��� ���ˣ�
DROP TABLE mytable;
ͬ������Ϊ myschema ��·���еĵ�һ��Ԫ�أ� �¶���ȱʡʱ�����������
����Ҳ����д��
SET search_path TO myschema;
Ȼ�������������ȷ���εĻ����Ͳ����ٷ��� public ģʽ�ˡ� public ģʽû���κ�����֮����ֻ������ȱʡʱ�ʹ��ڡ� ����Ҳ������ɾ���ˡ�
�ּ� Section 9.19 ��ȡ��������ģʽ����·���ķ�����
����·�������������������������Լ�����������������ʽ�ͱ�������ȫ��ͬ�� �������ͺͺ����������������һ���������Ρ��������Ҫ�ڱ��ʽ��дһ�������εIJ��������֣� ������һ�������Ҫ���������ôд
OPERATOR(schema.operator)
������Ϊ�˱�������塣������һ������
SELECT 3 OPERATOR(pg_catalog.+) 4;
ʵ��������ͨ����������·��Ѱ�Ҳ������� �����Ͳ���д��ô�ѿ��Ķ����ˡ�
ȱʡʱ���û�������ģʽ�в������������еĶ��� Ϊ�������ǿ��ü���ģʽ����������Ҫ��ģʽ�ϸ��� USAGE Ȩ�ޡ�Ϊ�����û�ʹ��ģʽ�еĶ������ǿ�����Ҫ��������Ȩ�ޣ� ֻҪ���ʺϸö���ġ�
�û�Ҳ���������ڱ��˵�ģʽ�ﴴ������Ҫ������ô���� ������Ҫ�����ڸ�ģʽ�ϵ� CREATE Ȩ�ޡ� ��ע�⣬ȱʡʱ��ÿ���˶��� public ģʽ�� �� CREATE Ȩ�ޡ��������������п������ӵ� ָ�����ݿ��ϵ��û������ﴴ����������㲻������ô���� ����Գ������Ȩ�ޣ�
REVOKE CREATE ON public FROM PUBLIC;
����һ�� "public" ��ģʽ���ڶ��� "public" ��˼��"�����û�"�� ��һ�������Ǹ���ʶ�������ڶ������Ǹ��ؼ��֣������в�ͬ�Ĵ�Сд�� ��ס������ Section 4.1.1 ���� ˵����ԭ��
���� public ���û�������ģʽ֮�⣬ ÿ�����ݿⶼ����һ�� pg_catalog ģʽ�������� ϵͳ������������������ͣ������Ͳ�������pg_catalog ��������·���е�һ���֡������û����ȷ������·���У���ô ������������·�����ģʽ֮ǰ�����������ͱ�֤�����õ����� ���ǿ��������ء��������������ȷ�ذ�pg_catalog �����������·���ĺ��棬����������û���������ָ������õ����ֵĻ���
�� PostgreSQL �汾 7.3 ֮ǰ�� �� pg_ ��ͷ�ı������DZ����ġ������������ ��������ȷ���ˣ������Ҫ������Դ��������ı����֣� ֻҪ���ڷ�ϵͳģʽ�������������û��Dz�Ҫʹ�����������֣� �Ա�֤�Լ�����������°汾��ͻ����Щ�汾Ҳ��ᶨ��һЩ�� ��ı�ͬ���ı�����ȱʡ����·���У�һ������ı�������� ���ý�����Ϊϵͳ����ϵͳ��������ѭ��pg_ ��ͷ�Ĵ�ͳ����ˣ�ֻҪ��ı�����pg_ ��ͷ�� �Ͳ���������ε��û������ֳ�ͻ��
ģʽ�����Զ��ַ�ʽ��֯������ݡ�������һЩ����ʹ�õ�ģʽ�� ����Ҳ��������ȱʡ�����еõ�֧�֣�
�����û�д����κ�ģʽ����ô�����û�����������publicģʽ�� ������ģ���˻�û��ģʽ��ʱ����龰���������ý�����Ҫ���� ֻ��һ���û��������ݿ���ֻ�м��������û������Ρ����������� Ҳ��������ƽ���ش���ģʽ�Ļ������ɡ�
�����Ϊÿ���û�����һ��ģʽ�����ֺ��û���ͬ��Ҫ�ǵ�ȱʡ�� ����·����$user��ʼ���������Ϊ�û����� ��ˣ����ÿ���û�����һ��������ģʽ����ô����ȱʡʱ�������� �Լ���ģʽ��
�����ʹ�������������ã���ô����ܻ��볷����publicģʽ�ķ��� ������һ��ɾ������������ˣ��û�����������������Լ���ģʽ�ˡ�
Ҫ��װ�����Ӧ�ã���������ʹ�õı��������ṩ�Ķ���ĺ����ȵȣ��� ���ǿ������Ƿŵ�������ģʽ�С�ֻҪ�ǵø��������ǵ��û�������� ��Ȩ�Ϳ����ˡ�Ȼ���û��Ϳ���ͨ����һ��ģʽ��������Щ������ʹ�� ��Щ����Ķ��������ǿ��Ѷ����ģʽ�ŵ����ǵ�����·���У������� ����
�� SQL �����ͬһ��ģʽ��Ķ����ɲ�ͬ���û����еĸ����Dz����ڵġ� ���ң���Щʵ�ֲ������㴴�������ǵ������߲�ͬ����ģʽ��ʵ���ϣ� ģʽ���û��ĸ�������Щֻʵ���˱��й涨�Ļ���ģʽ֧�ֵ����ݿ�ϵͳ�X����һ���ġ� ��ˣ�����û����Ƕ����ּ������Σ�ʹ���������� username.tablename��ɡ� �����Ϊÿ���û���������һ��ģʽ����ʵ���Ͼ��� PostgreSQL ����Ϊ��
ͬ������ SQL ����Ҳû�� public ģʽ�ĸ�� Ϊ������ȵ���ѭ�����㲻Ӧ��ʹ�ã�����������Ӧ��ɾ���� public ģʽ��
��Ȼ����Щ SQL ���ݿ�ϵͳ���ܸ���û��ʵ��ģʽ��������ͨ������ �������������Ƶģ������ݿ�������ṩģʽ��֧�֡� �������Ҫ����Щϵͳ�ϸɻ��ô����ȵ���ֲ�����Ը�������ģʽ��