insert.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/insert.l,v 1.12 1998/10/14 02:54:36 momjian Exp $
  4. .TH INSERT SQL 11/05/95 PostgreSQL PostgreSQL
  5. .SH NAME
  6. insert - insert tuples to a relation
  7. .SH SYNOPSIS
  8. .nf
  9. fBinsertfR into classname
  10.     [(att.expr-1 [,att_expr.i] )]
  11.     {fBvaluesfR (expression1 [,expression-i] ) |
  12.     fBselectfR [distinct]
  13.     expression1 [,expression-i]
  14.     [fBfromfR from-list] [fBwherefR qual] 
  15.     [fBgroup byfR attr_name1 {, attr_name-i....}]
  16.     [fBunion {all} selectfR ...]
  17. .fi
  18. .SH DESCRIPTION
  19. .BR Insert
  20. adds instances that satisfy the qualification,
  21. .IR qual ,
  22. to
  23. .IR classname .
  24. .IR Classname 
  25. must be the name of an existing class.  The target list specifies the
  26. values of the fields to be appended to
  27. .IR classname .
  28. That is, each 
  29. .IR att_expr
  30. specifies a field (either an attribute name or an attribute name plus
  31. an array specification) to which the corresponding 
  32. .IR expression
  33. should be assigned.  The fields in the target list may be listed in
  34. any order.  Fields of the result class which do not appear in the
  35. target list default to NULL.  If the expression for each field is not
  36. of the correct data type, automatic type coercion will be attempted.
  37. .PP
  38. An array initialization may take exactly one of the following forms:
  39. .nf
  40. --
  41. -- Specify a lower and upper index for each dimension 
  42. -- 
  43. att_name[lIndex-1:uIndex-1]..[lIndex-i:uIndex-i] = array_str
  44. --
  45. --Specify only the upper index for each dimension
  46. --(each lower index defaults to 1)
  47. --
  48. att_name[uIndex-1]..[uIndex-i] = array_str
  49. --
  50. --Use the upper index bounds as specified within array_str
  51. --(each lower index defaults to 1)
  52. --
  53. att_name = array_str
  54. .fi
  55. where each
  56. .IR lIndex
  57. or
  58. .IR uIndex
  59. is an integer constant and
  60. .IR array_str
  61. is an array constant.
  62. .PP
  63. If the user does not specify any array bounds (as in the third form)
  64. then Postgres will attempt to deduce the actual array bounds from the
  65. contents of
  66. .IR array_str .
  67. If the user does specify explicit array bounds (as in the first and
  68. second forms) then the array may be initialized partly or fully 
  69. using a C-like syntax for array initialization. 
  70. However, the uninitialized array elements will
  71. contain garbage.
  72. .PP
  73. You must have write or append access to a class in order to append to
  74. it, as well as read access on any class whose values are read in the
  75. target list or qualification.
  76. .SH EXAMPLES
  77. .nf
  78. --
  79. --Make a new employee Jones work for Smith
  80. --
  81. insert into emp
  82.     select newemp.name, newemp.salary,
  83. "Smith", 1990-newemp.age
  84. from newemp
  85. where name = "Jones"
  86. .fi
  87. .nf
  88. --
  89. --Insert into newemp class to newemp
  90. --
  91. insert into newemp
  92.     select * from newemp1 
  93. .fi
  94. .nf
  95. --
  96. --Create an empty 3x3 gameboard for noughts-and-crosses
  97. --(all of these queries create the same board attribute)
  98. --
  99. insert into tictactoe (game, board[1:3][1:3])
  100.     values(1,'{{"","",""},{},{"",""}}')
  101. insert into tictactoe (game, board[3][3])
  102.     values (2,'{}')
  103. insert into tictactoe (game, board) 
  104.     values (3,'{{,,},{,,},{,,}}')
  105. .fi
  106. .SH "SEE ALSO"
  107. create_table(l),
  108. create_type(l),
  109. update(l),
  110. select(l)