alter_table.l
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:3k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. ." This is -*-nroff-*-
  2. ." XXX standard disclaimer belongs here....
  3. ." $Header: /usr/local/cvsroot/pgsql/src/man/Attic/alter_table.l,v 1.7 1998/06/24 13:21:23 momjian Exp $
  4. .TH "ALTER TABLE" SQL 09/25/97 PostgreSQL
  5. .SH NAME
  6. alter table - add attributes to a class, or rename an attribute or class
  7. .SH SYNOPSIS
  8. .nf
  9. fBalter tablefR classname [ * ]
  10. fBaddfR [ fBcolumnfR ] attname type
  11. fBalter tablefR classname [ * ]
  12. fBaddfR fB(fR attname type fB)fR
  13. fBalter tablefR classname1
  14. fBrename tofR classname2
  15. fBalter tablefR classname1 [fB*fR]
  16. fBrename [column]fR attname1 fBtofR attname2
  17. .fi
  18.         
  19. .SH DESCRIPTION
  20. The
  21. .BR "alter table"
  22. command causes a new attribute to be added to an existing class,
  23. .IR classname ,
  24. or the name of a class or attribute to change
  25. without changing any of the data contained in the affected class.
  26. Thus, the class or attribute will remain of the same type and size
  27. after this command is executed.
  28. .PP
  29. The new attributes and their types are specified
  30. in the same style and with the the same restrictions as in
  31. .IR create_table(l).
  32. .PP
  33. In order to add an attribute to each class in an entire inheritance
  34. hierarchy, use the
  35. .IR classname
  36. of the superclass and append a *(lq**(rq.  (By default, the
  37. attribute will not be added to any of the subclasses.)  This should
  38. .BR always
  39. be done when adding an attribute to a superclass.  If it is not,
  40. queries on the inheritance hierarchy such as
  41. .nf
  42. select * from super* s
  43. .fi
  44. will not work because the subclasses will be missing an attribute
  45. found in the superclass.
  46. .PP
  47. For efficiency reasons, default values for added attributes are not
  48. placed in existing instances of a class.  That is, existing instances
  49. will have NULL values in the new attributes.  If non-NULL values are
  50. desired, a subsequent
  51. .IR update(l)
  52. query should be run.
  53. .PP
  54. In order to rename an attribute in each class in an entire inheritance
  55. hierarchy, use the 
  56. .IR classname
  57. of the superclass and append a *(lq**(rq.  (By default, the attribute
  58. will not be renamed in any of the subclasses.)  This should
  59. .BR always
  60. be done when changing an attribute name in a superclass.  If it is
  61. not, queries on the inheritance hierarchy such as
  62. .nf
  63. select * from super* s
  64. .fi
  65. will not work because the subclasses will be (in effect) missing an
  66. attribute found in the superclass.
  67. .PP
  68. You must own the class being modified in order to rename it or part of
  69. its schema.  Renaming any part of the schema of a system catalog is
  70. not permitted.
  71. .PP
  72. You must own the class in order to change its schema.
  73. .SH EXAMPLE
  74. .nf
  75. --
  76. -- add the date of hire to the emp class
  77. -- 
  78. alter table emp add column hiredate abstime
  79. --
  80. -- add a health-care number to all persons
  81. -- (including employees, students, ...)
  82. --
  83. alter table person * add column health_care_id int4
  84. --
  85. -- change the emp class to personnel
  86. --
  87. alter table emp rename to personnel
  88. --
  89. -- change the sports attribute to hobbies
  90. --
  91. alter table emp rename column sports to hobbies
  92. --
  93. -- make a change to an inherited attribute
  94. --
  95. alter table person * rename column last_name to family_name
  96. .fi
  97. .SH "SEE ALSO"
  98. create_table(l),
  99. update(l).