~ubuntu-branches/ubuntu/wily/sqlite3/wily

« back to all changes in this revision

Viewing changes to lang_altertable.html

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2012-06-13 21:43:48 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20120613214348-uy14uupdeq0hh04k
Tags: upstream-3.7.13/www
Import upstream version 3.7.13, component www

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
2
<html><head>
 
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
4
<title>SQLite Query Language: ALTER TABLE</title>
 
5
<style type="text/css">
 
6
body {
 
7
    margin: auto;
 
8
    font-family: Verdana, sans-serif;
 
9
    padding: 8px 1%;
 
10
}
 
11
 
 
12
a { color: #044a64 }
 
13
a:visited { color: #734559 }
 
14
 
 
15
.logo { position:absolute; margin:3px; }
 
16
.tagline {
 
17
  float:right;
 
18
  text-align:right;
 
19
  font-style:italic;
 
20
  width:300px;
 
21
  margin:12px;
 
22
  margin-top:58px;
 
23
}
 
24
 
 
25
.toolbar {
 
26
  text-align: center;
 
27
  line-height: 1.6em;
 
28
  margin: 0;
 
29
  padding: 0px 8px;
 
30
}
 
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
 
32
.toolbar a:visited { color: white; }
 
33
.toolbar a:hover { color: #044a64; background: white; }
 
34
 
 
35
.content    { margin: 5%; }
 
36
.content dt { font-weight:bold; }
 
37
.content dd { margin-bottom: 25px; margin-left:20%; }
 
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
 
39
 
 
40
/* rounded corners */
 
41
.se  { background: url(images/se.gif) 100% 100% no-repeat #044a64}
 
42
.sw  { background: url(images/sw.gif) 0% 100% no-repeat }
 
43
.ne  { background: url(images/ne.gif) 100% 0% no-repeat }
 
44
.nw  { background: url(images/nw.gif) 0% 0% no-repeat }
 
45
 
 
46
/* Things for "fancyformat" documents start here. */
 
47
.fancy img+p {font-style:italic}
 
48
.fancy .codeblock i { color: darkblue; }
 
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
 
50
.fancy h2 { margin-left: 10px }
 
51
.fancy h3 { margin-left: 20px }
 
52
.fancy h4 { margin-left: 30px }
 
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
 
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
 
55
.fancy #toc a        { color: darkblue ; text-decoration: none }
 
56
.fancy .todo         { color: #AA3333 ; font-style : italic }
 
57
.fancy .todo:before  { content: 'TODO:' }
 
58
.fancy p.todo        { border: solid #AA3333 1px; padding: 1ex }
 
59
.fancy img { display:block; }
 
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
 
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
 
62
.fancy li p { margin: 1em 0 }
 
63
/* End of "fancyformat" specific rules. */
 
64
 
 
65
</style>
 
66
  
 
67
</head>
 
68
<body>
 
69
<div><!-- container div to satisfy validator -->
 
70
 
 
71
<a href="index.html">
 
72
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite Logo"
 
73
 border="0"></a>
 
74
<div><!-- IE hack to prevent disappearing logo--></div>
 
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
 
76
 
 
77
<table width=100% style="clear:both"><tr><td>
 
78
  <div class="se"><div class="sw"><div class="ne"><div class="nw">
 
79
  <table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
 
80
  <td width=100%>
 
81
  <div class="toolbar">
 
82
    <a href="about.html">About</a>
 
83
    <a href="sitemap.html">Sitemap</a>
 
84
    <a href="docs.html">Documentation</a>
 
85
    <a href="download.html">Download</a>
 
86
    <a href="copyright.html">License</a>
 
87
    <a href="news.html">News</a>
 
88
    <a href="support.html">Support</a>
 
89
  </div>
 
90
<script>
 
91
  gMsg = "Search SQLite Docs..."
 
92
  function entersearch() {
 
93
    var q = document.getElementById("q");
 
94
    if( q.value == gMsg ) { q.value = "" }
 
95
    q.style.color = "black"
 
96
    q.style.fontStyle = "normal"
 
97
  }
 
98
  function leavesearch() {
 
99
    var q = document.getElementById("q");
 
100
    if( q.value == "" ) { 
 
101
      q.value = gMsg
 
102
      q.style.color = "#044a64"
 
103
      q.style.fontStyle = "italic"
 
104
    }
 
105
  }
 
106
</script>
 
107
<td>
 
108
    <div style="padding:0 1em 0px 0;white-space:nowrap">
 
109
    <form name=f method="GET" action="http://www.sqlite.org/search">
 
110
      <input id=q name=q type=text
 
111
       onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
 
112
      <input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
 
113
    </form>
 
114
    </div>
 
115
  </table>
 
116
</div></div></div></div>
 
117
</td></tr></table>
 
118
<div class=startsearch></div>
 
119
  
 
120
<h1 align="center">SQL As Understood By SQLite</h1><p><a href="lang.html">[Top]</a></p><h2>ALTER TABLE</h2><h4><a href="syntaxdiagrams.html#alter-table-stmt">alter-table-stmt:</a></h4><blockquote> <img alt="syntax diagram alter-table-stmt" src="images/syntax/alter-table-stmt.gif"></img> </blockquote>
 
121
 
 
122
 
 
123
<p>SQLite supports a limited subset of ALTER TABLE.
 
124
The ALTER TABLE command in SQLite allows the user to rename a table
 
125
or to add a new column to an existing table. It is not possible
 
126
to rename a column, remove a column, or add or remove constraints from a table.
 
127
</p>
 
128
 
 
129
<p> The RENAME TO syntax is used to rename the table identified by 
 
130
<i>&#91;database-name.&#93;table-name</i> to <i>new-table-name</i>.
 
131
This command 
 
132
cannot be used to move a table between attached databases, only to rename 
 
133
a table within the same database.</p>
 
134
 
 
135
<p> If the table being renamed has triggers or indices, then these remain
 
136
attached to the table after it has been renamed.  However, if there are
 
137
any view definitions, or statements executed by triggers that refer to
 
138
the table being renamed, these are not automatically modified to use the new
 
139
table name. If this is required, the triggers or view definitions must be
 
140
dropped and recreated to use the new table name by hand.
 
141
</p>
 
142
 
 
143
<p>If <a href="foreignkeys.html">foreign key constraints</a> are 
 
144
<a href="pragma.html#pragma_foreign_keys">enabled</a> when a table is renamed, then any
 
145
<a href="syntaxdiagrams.html#foreign-key-clause">REFERENCES clauses</a> in any table (either the
 
146
table being renamed or some other table)
 
147
that refer to the table being renamed are modified to refer 
 
148
to the renamed table by its new name.
 
149
 
 
150
<p> The ADD COLUMN syntax
 
151
is used to add a new column to an existing table.
 
152
The new column is always appended to the end of the list of existing columns.
 
153
The <a href="syntaxdiagrams.html#column-def">column-def</a> rule defines the characteristics of the new column.
 
154
The new column may take any of the forms permissible in a <a href="lang_createtable.html">CREATE TABLE</a>
 
155
statement, with the following restrictions:
 
156
<ul>
 
157
<li>The column may not have a PRIMARY KEY or UNIQUE constraint.</li>
 
158
<li>The column may not have a default value of CURRENT_TIME, CURRENT_DATE, 
 
159
    CURRENT_TIMESTAMP, or an expression in parentheses.</li>
 
160
<li>If a NOT NULL constraint is specified, then the column must have a
 
161
    default value other than NULL.
 
162
<li>If <a href="foreignkeys.html">foreign key constraints</a> are <a href="pragma.html#pragma_foreign_keys">enabled</a> and
 
163
    a column with a <a href="syntaxdiagrams.html#foreign-key-clause">REFERENCES clause</a>
 
164
    is added, the column must have a default value of NULL.
 
165
</ul>
 
166
 
 
167
<p>Note also that when adding a <a href="lang_createtable.html#ckconst">CHECK constraint</a>, the CHECK constraint
 
168
is not tested against preexisting rows of the table.
 
169
This can result in a table that contains data that
 
170
is in violation of the CHECK constraint.  Future versions of SQLite might
 
171
change to validate CHECK constraints as they are added.</p>
 
172
 
 
173
<p> The execution time of the ALTER TABLE command is independent of
 
174
the amount of data in the table.  The ALTER TABLE command runs as quickly
 
175
on a table with 10 million rows as it does on a table with 1 row.
 
176
</p>
 
177
 
 
178
<p>After ADD COLUMN has been run on a database, that database will not
 
179
be readable by SQLite version 3.1.3 and earlier.</p>
 
180
 
 
181