System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 17ad33c390b701889280e61b26d630388a73ec6c:


0000: 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a  <!DOCTYPE html>.
0010: 3c 68 74 6d 6c 3e 3c 68 65 61 64 3e 0a 3c 6d 65  <html><head>.<me
0020: 74 61 20 6e 61 6d 65 3d 22 76 69 65 77 70 6f 72  ta name="viewpor
0030: 74 22 20 63 6f 6e 74 65 6e 74 3d 22 77 69 64 74  t" content="widt
0040: 68 3d 64 65 76 69 63 65 2d 77 69 64 74 68 2c 20  h=device-width, 
0050: 69 6e 69 74 69 61 6c 2d 73 63 61 6c 65 3d 31 2e  initial-scale=1.
0060: 30 22 3e 0a 3c 6d 65 74 61 20 68 74 74 70 2d 65  0">.<meta http-e
0070: 71 75 69 76 3d 22 63 6f 6e 74 65 6e 74 2d 74 79  quiv="content-ty
0080: 70 65 22 20 63 6f 6e 74 65 6e 74 3d 22 74 65 78  pe" content="tex
0090: 74 2f 68 74 6d 6c 3b 20 63 68 61 72 73 65 74 3d  t/html; charset=
00a0: 55 54 46 2d 38 22 3e 0a 3c 6c 69 6e 6b 20 68 72  UTF-8">.<link hr
00b0: 65 66 3d 22 73 71 6c 69 74 65 2e 63 73 73 22 20  ef="sqlite.css" 
00c0: 72 65 6c 3d 22 73 74 79 6c 65 73 68 65 65 74 22  rel="stylesheet"
00d0: 3e 0a 3c 74 69 74 6c 65 3e 53 51 4c 69 74 65 20  >.<title>SQLite 
00e0: 51 75 65 72 79 20 4c 61 6e 67 75 61 67 65 3a 20  Query Language: 
00f0: 41 4c 54 45 52 20 54 41 42 4c 45 3c 2f 74 69 74  ALTER TABLE</tit
0100: 6c 65 3e 0a 3c 21 2d 2d 20 70 61 74 68 3d 20 2d  le>.<!-- path= -
0110: 2d 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62 6f 64 79  ->.</head>.<body
0120: 3e 0a 3c 64 69 76 20 63 6c 61 73 73 3d 6e 6f 73  >.<div class=nos
0130: 65 61 72 63 68 3e 0a 3c 61 20 68 72 65 66 3d 22  earch>.<a href="
0140: 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 0a 3c 69 6d  index.html">.<im
0150: 67 20 63 6c 61 73 73 3d 22 6c 6f 67 6f 22 20 73  g class="logo" s
0160: 72 63 3d 22 69 6d 61 67 65 73 2f 73 71 6c 69 74  rc="images/sqlit
0170: 65 33 37 30 5f 62 61 6e 6e 65 72 2e 67 69 66 22  e370_banner.gif"
0180: 20 61 6c 74 3d 22 53 51 4c 69 74 65 22 20 62 6f   alt="SQLite" bo
0190: 72 64 65 72 3d 22 30 22 3e 0a 3c 2f 61 3e 0a 3c  rder="0">.</a>.<
01a0: 64 69 76 3e 3c 21 2d 2d 20 49 45 20 68 61 63 6b  div><!-- IE hack
01b0: 20 74 6f 20 70 72 65 76 65 6e 74 20 64 69 73 61   to prevent disa
01c0: 70 70 65 61 72 69 6e 67 20 6c 6f 67 6f 20 2d 2d  ppearing logo --
01d0: 3e 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 63 6c 61  ></div>.<div cla
01e0: 73 73 3d 22 74 61 67 6c 69 6e 65 20 64 65 73 6b  ss="tagline desk
01f0: 74 6f 70 6f 6e 6c 79 22 3e 0a 53 6d 61 6c 6c 2e  toponly">.Small.
0200: 20 46 61 73 74 2e 20 52 65 6c 69 61 62 6c 65 2e   Fast. Reliable.
0210: 3c 62 72 3e 43 68 6f 6f 73 65 20 61 6e 79 20 74  <br>Choose any t
0220: 68 72 65 65 2e 0a 3c 2f 64 69 76 3e 0a 3c 64 69  hree..</div>.<di
0230: 76 20 63 6c 61 73 73 3d 22 6d 65 6e 75 20 6d 61  v class="menu ma
0240: 69 6e 6d 65 6e 75 22 3e 0a 3c 75 6c 3e 0a 3c 6c  inmenu">.<ul>.<l
0250: 69 3e 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78  i><a href="index
0260: 2e 68 74 6d 6c 22 3e 48 6f 6d 65 3c 2f 61 3e 0a  .html">Home</a>.
0270: 3c 6c 69 20 63 6c 61 73 73 3d 27 6d 6f 62 69 6c  <li class='mobil
0280: 65 6f 6e 6c 79 27 3e 3c 61 20 68 72 65 66 3d 22  eonly'><a href="
0290: 6a 61 76 61 73 63 72 69 70 74 3a 76 6f 69 64 28  javascript:void(
02a0: 30 29 22 20 6f 6e 63 6c 69 63 6b 3d 27 74 6f 67  0)" onclick='tog
02b0: 67 6c 65 5f 64 69 76 28 22 73 75 62 6d 65 6e 75  gle_div("submenu
02c0: 22 29 27 3e 4d 65 6e 75 3c 2f 61 3e 0a 3c 6c 69  ")'>Menu</a>.<li
02d0: 20 63 6c 61 73 73 3d 27 77 69 64 65 6f 6e 6c 79   class='wideonly
02e0: 27 3e 3c 61 20 68 72 65 66 3d 27 61 62 6f 75 74  '><a href='about
02f0: 2e 68 74 6d 6c 27 3e 41 62 6f 75 74 3c 2f 61 3e  .html'>About</a>
0300: 0a 3c 6c 69 20 63 6c 61 73 73 3d 27 64 65 73 6b  .<li class='desk
0310: 74 6f 70 6f 6e 6c 79 27 3e 3c 61 20 68 72 65 66  toponly'><a href
0320: 3d 22 64 6f 63 73 2e 68 74 6d 6c 22 3e 44 6f 63  ="docs.html">Doc
0330: 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61 3e 0a 3c  umentation</a>.<
0340: 6c 69 20 63 6c 61 73 73 3d 27 64 65 73 6b 74 6f  li class='deskto
0350: 70 6f 6e 6c 79 27 3e 3c 61 20 68 72 65 66 3d 22  ponly'><a href="
0360: 64 6f 77 6e 6c 6f 61 64 2e 68 74 6d 6c 22 3e 44  download.html">D
0370: 6f 77 6e 6c 6f 61 64 3c 2f 61 3e 0a 3c 6c 69 20  ownload</a>.<li 
0380: 63 6c 61 73 73 3d 27 77 69 64 65 6f 6e 6c 79 27  class='wideonly'
0390: 3e 3c 61 20 68 72 65 66 3d 27 63 6f 70 79 72 69  ><a href='copyri
03a0: 67 68 74 2e 68 74 6d 6c 27 3e 4c 69 63 65 6e 73  ght.html'>Licens
03b0: 65 3c 2f 61 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d  e</a>.<li class=
03c0: 27 64 65 73 6b 74 6f 70 6f 6e 6c 79 27 3e 3c 61  'desktoponly'><a
03d0: 20 68 72 65 66 3d 22 73 75 70 70 6f 72 74 2e 68   href="support.h
03e0: 74 6d 6c 22 3e 53 75 70 70 6f 72 74 3c 2f 61 3e  tml">Support</a>
03f0: 0a 3c 6c 69 20 63 6c 61 73 73 3d 27 64 65 73 6b  .<li class='desk
0400: 74 6f 70 6f 6e 6c 79 27 3e 3c 61 20 68 72 65 66  toponly'><a href
0410: 3d 22 70 72 6f 73 75 70 70 6f 72 74 2e 68 74 6d  ="prosupport.htm
0420: 6c 22 3e 50 75 72 63 68 61 73 65 3c 2f 61 3e 0a  l">Purchase</a>.
0430: 3c 6c 69 20 63 6c 61 73 73 3d 27 73 65 61 72 63  <li class='searc
0440: 68 27 20 69 64 3d 27 73 65 61 72 63 68 5f 6d 65  h' id='search_me
0450: 6e 75 62 75 74 74 6f 6e 27 3e 0a 3c 61 20 68 72  nubutton'>.<a hr
0460: 65 66 3d 22 6a 61 76 61 73 63 72 69 70 74 3a 76  ef="javascript:v
0470: 6f 69 64 28 30 29 22 20 6f 6e 63 6c 69 63 6b 3d  oid(0)" onclick=
0480: 27 74 6f 67 67 6c 65 5f 73 65 61 72 63 68 28 29  'toggle_search()
0490: 27 3e 53 65 61 72 63 68 3c 2f 61 3e 0a 3c 2f 75  '>Search</a>.</u
04a0: 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 63  l>.</div>.<div c
04b0: 6c 61 73 73 3d 22 6d 65 6e 75 20 73 75 62 6d 65  lass="menu subme
04c0: 6e 75 22 20 69 64 3d 22 73 75 62 6d 65 6e 75 22  nu" id="submenu"
04d0: 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72  >.<ul>.<li><a hr
04e0: 65 66 3d 27 61 62 6f 75 74 2e 68 74 6d 6c 27 3e  ef='about.html'>
04f0: 41 62 6f 75 74 3c 2f 61 3e 0a 3c 6c 69 3e 3c 61  About</a>.<li><a
0500: 20 68 72 65 66 3d 27 64 6f 63 73 2e 68 74 6d 6c   href='docs.html
0510: 27 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c  '>Documentation<
0520: 2f 61 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  /a>.<li><a href=
0530: 27 64 6f 77 6e 6c 6f 61 64 2e 68 74 6d 6c 27 3e  'download.html'>
0540: 44 6f 77 6e 6c 6f 61 64 3c 2f 61 3e 0a 3c 6c 69  Download</a>.<li
0550: 3e 3c 61 20 68 72 65 66 3d 27 73 75 70 70 6f 72  ><a href='suppor
0560: 74 2e 68 74 6d 6c 27 3e 53 75 70 70 6f 72 74 3c  t.html'>Support<
0570: 2f 61 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  /a>.<li><a href=
0580: 27 70 72 6f 73 75 70 70 6f 72 74 2e 68 74 6d 6c  'prosupport.html
0590: 27 3e 50 75 72 63 68 61 73 65 3c 2f 61 3e 0a 3c  '>Purchase</a>.<
05a0: 2f 75 6c 3e 0a 3c 2f 64 69 76 3e 0a 3c 64 69 76  /ul>.</div>.<div
05b0: 20 63 6c 61 73 73 3d 22 73 65 61 72 63 68 6d 65   class="searchme
05c0: 6e 75 22 20 69 64 3d 22 73 65 61 72 63 68 6d 65  nu" id="searchme
05d0: 6e 75 22 3e 0a 3c 66 6f 72 6d 20 6d 65 74 68 6f  nu">.<form metho
05e0: 64 3d 22 47 45 54 22 20 61 63 74 69 6f 6e 3d 22  d="GET" action="
05f0: 73 65 61 72 63 68 22 3e 0a 3c 73 65 6c 65 63 74  search">.<select
0600: 20 6e 61 6d 65 3d 22 73 22 20 69 64 3d 22 73 65   name="s" id="se
0610: 61 72 63 68 74 79 70 65 22 3e 0a 3c 6f 70 74 69  archtype">.<opti
0620: 6f 6e 20 76 61 6c 75 65 3d 22 64 22 3e 53 65 61  on value="d">Sea
0630: 72 63 68 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f  rch Documentatio
0640: 6e 3c 2f 6f 70 74 69 6f 6e 3e 0a 3c 6f 70 74 69  n</option>.<opti
0650: 6f 6e 20 76 61 6c 75 65 3d 22 63 22 3e 53 65 61  on value="c">Sea
0660: 72 63 68 20 43 68 61 6e 67 65 6c 6f 67 3c 2f 6f  rch Changelog</o
0670: 70 74 69 6f 6e 3e 0a 3c 2f 73 65 6c 65 63 74 3e  ption>.</select>
0680: 0a 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 74 65  .<input type="te
0690: 78 74 22 20 6e 61 6d 65 3d 22 71 22 20 69 64 3d  xt" name="q" id=
06a0: 22 73 65 61 72 63 68 62 6f 78 22 20 76 61 6c 75  "searchbox" valu
06b0: 65 3d 22 22 3e 0a 3c 69 6e 70 75 74 20 74 79 70  e="">.<input typ
06c0: 65 3d 22 73 75 62 6d 69 74 22 20 76 61 6c 75 65  e="submit" value
06d0: 3d 22 47 6f 22 3e 0a 3c 2f 66 6f 72 6d 3e 0a 3c  ="Go">.</form>.<
06e0: 2f 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c 73 63  /div>.</div>.<sc
06f0: 72 69 70 74 3e 0a 66 75 6e 63 74 69 6f 6e 20 74  ript>.function t
0700: 6f 67 67 6c 65 5f 64 69 76 28 6e 6d 29 20 7b 0a  oggle_div(nm) {.
0710: 76 61 72 20 77 20 3d 20 64 6f 63 75 6d 65 6e 74  var w = document
0720: 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28  .getElementById(
0730: 6e 6d 29 3b 0a 69 66 28 20 77 2e 73 74 79 6c 65  nm);.if( w.style
0740: 2e 64 69 73 70 6c 61 79 3d 3d 22 62 6c 6f 63 6b  .display=="block
0750: 22 20 29 7b 0a 77 2e 73 74 79 6c 65 2e 64 69 73  " ){.w.style.dis
0760: 70 6c 61 79 20 3d 20 22 6e 6f 6e 65 22 3b 0a 7d  play = "none";.}
0770: 65 6c 73 65 7b 0a 77 2e 73 74 79 6c 65 2e 64 69  else{.w.style.di
0780: 73 70 6c 61 79 20 3d 20 22 62 6c 6f 63 6b 22 3b  splay = "block";
0790: 0a 7d 0a 7d 0a 66 75 6e 63 74 69 6f 6e 20 74 6f  .}.}.function to
07a0: 67 67 6c 65 5f 73 65 61 72 63 68 28 29 20 7b 0a  ggle_search() {.
07b0: 76 61 72 20 77 20 3d 20 64 6f 63 75 6d 65 6e 74  var w = document
07c0: 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28  .getElementById(
07d0: 22 73 65 61 72 63 68 6d 65 6e 75 22 29 3b 0a 69  "searchmenu");.i
07e0: 66 28 20 77 2e 73 74 79 6c 65 2e 64 69 73 70 6c  f( w.style.displ
07f0: 61 79 3d 3d 22 62 6c 6f 63 6b 22 20 29 7b 0a 77  ay=="block" ){.w
0800: 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d  .style.display =
0810: 20 22 6e 6f 6e 65 22 3b 0a 7d 20 65 6c 73 65 20   "none";.} else 
0820: 7b 0a 77 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61  {.w.style.displa
0830: 79 20 3d 20 22 62 6c 6f 63 6b 22 3b 0a 73 65 74  y = "block";.set
0840: 54 69 6d 65 6f 75 74 28 66 75 6e 63 74 69 6f 6e  Timeout(function
0850: 28 29 7b 0a 64 6f 63 75 6d 65 6e 74 2e 67 65 74  (){.document.get
0860: 45 6c 65 6d 65 6e 74 42 79 49 64 28 22 73 65 61  ElementById("sea
0870: 72 63 68 62 6f 78 22 29 2e 66 6f 63 75 73 28 29  rchbox").focus()
0880: 0a 7d 2c 20 33 30 29 3b 0a 7d 0a 7d 0a 66 75 6e  .}, 30);.}.}.fun
0890: 63 74 69 6f 6e 20 64 69 76 5f 6f 66 66 28 6e 6d  ction div_off(nm
08a0: 29 7b 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c  ){document.getEl
08b0: 65 6d 65 6e 74 42 79 49 64 28 6e 6d 29 2e 73 74  ementById(nm).st
08c0: 79 6c 65 2e 64 69 73 70 6c 61 79 3d 22 6e 6f 6e  yle.display="non
08d0: 65 22 3b 7d 0a 77 69 6e 64 6f 77 2e 6f 6e 62 65  e";}.window.onbe
08e0: 66 6f 72 65 75 6e 6c 6f 61 64 20 3d 20 66 75 6e  foreunload = fun
08f0: 63 74 69 6f 6e 28 65 29 7b 64 69 76 5f 6f 66 66  ction(e){div_off
0900: 28 22 73 75 62 6d 65 6e 75 22 29 3b 7d 0a 2f 2a  ("submenu");}./*
0910: 20 44 69 73 61 62 6c 65 20 74 68 65 20 53 65 61   Disable the Sea
0920: 72 63 68 20 66 65 61 74 75 72 65 20 69 66 20 77  rch feature if w
0930: 65 20 61 72 65 20 6e 6f 74 20 6f 70 65 72 61 74  e are not operat
0940: 69 6e 67 20 66 72 6f 6d 20 43 47 49 2c 20 73 69  ing from CGI, si
0950: 6e 63 65 20 2a 2f 0a 2f 2a 20 53 65 61 72 63 68  nce */./* Search
0960: 20 69 73 20 61 63 63 6f 6d 70 6c 69 73 68 65 64   is accomplished
0970: 20 75 73 69 6e 67 20 43 47 49 20 61 6e 64 20 77   using CGI and w
0980: 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20 77 69 74  ill not work wit
0990: 68 6f 75 74 20 69 74 2e 20 2a 2f 0a 69 66 28 20  hout it. */.if( 
09a0: 21 6c 6f 63 61 74 69 6f 6e 2e 6f 72 69 67 69 6e  !location.origin
09b0: 2e 6d 61 74 63 68 20 7c 7c 20 21 6c 6f 63 61 74  .match || !locat
09c0: 69 6f 6e 2e 6f 72 69 67 69 6e 2e 6d 61 74 63 68  ion.origin.match
09d0: 28 2f 68 74 74 70 2f 29 20 29 7b 0a 64 6f 63 75  (/http/) ){.docu
09e0: 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42  ment.getElementB
09f0: 79 49 64 28 22 73 65 61 72 63 68 5f 6d 65 6e 75  yId("search_menu
0a00: 62 75 74 74 6f 6e 22 29 2e 73 74 79 6c 65 2e 64  button").style.d
0a10: 69 73 70 6c 61 79 20 3d 20 22 6e 6f 6e 65 22 3b  isplay = "none";
0a20: 0a 7d 0a 2f 2a 20 55 73 65 64 20 62 79 20 74 68  .}./* Used by th
0a30: 65 20 48 69 64 65 2f 53 68 6f 77 20 62 75 74 74  e Hide/Show butt
0a40: 6f 6e 20 62 65 73 69 64 65 20 73 79 6e 74 61 78  on beside syntax
0a50: 20 64 69 61 67 72 61 6d 73 2c 20 74 6f 20 74 6f   diagrams, to to
0a60: 67 67 6c 65 20 74 68 65 20 2a 2f 0a 66 75 6e 63  ggle the */.func
0a70: 74 69 6f 6e 20 68 69 64 65 6f 72 73 68 6f 77 28  tion hideorshow(
0a80: 62 74 6e 2c 6f 62 6a 29 7b 0a 76 61 72 20 78 20  btn,obj){.var x 
0a90: 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c  = document.getEl
0aa0: 65 6d 65 6e 74 42 79 49 64 28 6f 62 6a 29 3b 0a  ementById(obj);.
0ab0: 76 61 72 20 62 20 3d 20 64 6f 63 75 6d 65 6e 74  var b = document
0ac0: 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28  .getElementById(
0ad0: 62 74 6e 29 3b 0a 69 66 28 20 78 2e 73 74 79 6c  btn);.if( x.styl
0ae0: 65 2e 64 69 73 70 6c 61 79 21 3d 27 6e 6f 6e 65  e.display!='none
0af0: 27 20 29 7b 0a 78 2e 73 74 79 6c 65 2e 64 69 73  ' ){.x.style.dis
0b00: 70 6c 61 79 20 3d 20 27 6e 6f 6e 65 27 3b 0a 62  play = 'none';.b
0b10: 2e 69 6e 6e 65 72 48 54 4d 4c 3d 27 73 68 6f 77  .innerHTML='show
0b20: 27 3b 0a 7d 65 6c 73 65 7b 0a 78 2e 73 74 79 6c  ';.}else{.x.styl
0b30: 65 2e 64 69 73 70 6c 61 79 20 3d 20 27 27 3b 0a  e.display = '';.
0b40: 62 2e 69 6e 6e 65 72 48 54 4d 4c 3d 27 68 69 64  b.innerHTML='hid
0b50: 65 27 3b 0a 7d 0a 72 65 74 75 72 6e 20 66 61 6c  e';.}.return fal
0b60: 73 65 3b 0a 7d 0a 3c 2f 73 63 72 69 70 74 3e 0a  se;.}.</script>.
0b70: 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 63 6c 61 73  </div>.<div clas
0b80: 73 3d 6e 6f 73 65 61 72 63 68 3e 3c 68 31 20 61  s=nosearch><h1 a
0b90: 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 53 51  lign="center">SQ
0ba0: 4c 20 41 73 20 55 6e 64 65 72 73 74 6f 6f 64 20  L As Understood 
0bb0: 42 79 20 53 51 4c 69 74 65 3c 2f 68 31 3e 3c 70  By SQLite</h1><p
0bc0: 3e 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 2e 68  ><a href="lang.h
0bd0: 74 6d 6c 22 3e 5b 54 6f 70 5d 3c 2f 61 3e 3c 2f  tml">[Top]</a></
0be0: 70 3e 3c 68 32 3e 41 4c 54 45 52 20 54 41 42 4c  p><h2>ALTER TABL
0bf0: 45 3c 2f 68 32 3e 3c 2f 64 69 76 3e 3c 70 3e 3c  E</h2></div><p><
0c00: 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61  b><a href="synta
0c10: 78 2f 61 6c 74 65 72 2d 74 61 62 6c 65 2d 73 74  x/alter-table-st
0c20: 6d 74 2e 68 74 6d 6c 22 3e 61 6c 74 65 72 2d 74  mt.html">alter-t
0c30: 61 62 6c 65 2d 73 74 6d 74 3a 3c 2f 61 3e 3c 2f  able-stmt:</a></
0c40: 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78  b>.<button id='x
0c50: 31 30 37 37 27 20 6f 6e 63 6c 69 63 6b 3d 27 68  1077' onclick='h
0c60: 69 64 65 6f 72 73 68 6f 77 28 22 78 31 30 37 37  ideorshow("x1077
0c70: 22 2c 22 78 31 30 37 38 22 29 27 3e 68 69 64 65  ","x1078")'>hide
0c80: 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c  </button></p>. <
0c90: 64 69 76 20 69 64 3d 27 78 31 30 37 38 27 20 63  div id='x1078' c
0ca0: 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e  lass='imgcontain
0cb0: 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22  er'>. <img alt="
0cc0: 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 61  syntax diagram a
0cd0: 6c 74 65 72 2d 74 61 62 6c 65 2d 73 74 6d 74 22  lter-table-stmt"
0ce0: 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e   src="images/syn
0cf0: 74 61 78 2f 61 6c 74 65 72 2d 74 61 62 6c 65 2d  tax/alter-table-
0d00: 73 74 6d 74 2e 67 69 66 22 20 2f 3e 0a 3c 70 3e  stmt.gif" />.<p>
0d10: 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74  <b><a href="synt
0d20: 61 78 2f 63 6f 6c 75 6d 6e 2d 64 65 66 2e 68 74  ax/column-def.ht
0d30: 6d 6c 22 3e 63 6f 6c 75 6d 6e 2d 64 65 66 3a 3c  ml">column-def:<
0d40: 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20  /a></b>.<button 
0d50: 69 64 3d 27 78 31 30 37 39 27 20 6f 6e 63 6c 69  id='x1079' oncli
0d60: 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22  ck='hideorshow("
0d70: 78 31 30 37 39 22 2c 22 78 31 30 38 30 22 29 27  x1079","x1080")'
0d80: 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f  >show</button></
0d90: 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 30  p>. <div id='x10
0da0: 38 30 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c  80' style='displ
0db0: 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d  ay:none;' class=
0dc0: 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a  'imgcontainer'>.
0dd0: 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61   <img alt="synta
0de0: 78 20 64 69 61 67 72 61 6d 20 63 6f 6c 75 6d 6e  x diagram column
0df0: 2d 64 65 66 22 20 73 72 63 3d 22 69 6d 61 67 65  -def" src="image
0e00: 73 2f 73 79 6e 74 61 78 2f 63 6f 6c 75 6d 6e 2d  s/syntax/column-
0e10: 64 65 66 2e 67 69 66 22 20 2f 3e 0a 3c 70 3e 3c  def.gif" />.<p><
0e20: 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61  b><a href="synta
0e30: 78 2f 63 6f 6c 75 6d 6e 2d 63 6f 6e 73 74 72 61  x/column-constra
0e40: 69 6e 74 2e 68 74 6d 6c 22 3e 63 6f 6c 75 6d 6e  int.html">column
0e50: 2d 63 6f 6e 73 74 72 61 69 6e 74 3a 3c 2f 61 3e  -constraint:</a>
0e60: 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d  </b>.<button id=
0e70: 27 78 31 30 38 31 27 20 6f 6e 63 6c 69 63 6b 3d  'x1081' onclick=
0e80: 27 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31 30  'hideorshow("x10
0e90: 38 31 22 2c 22 78 31 30 38 32 22 29 27 3e 73 68  81","x1082")'>sh
0ea0: 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a  ow</button></p>.
0eb0: 20 3c 64 69 76 20 69 64 3d 27 78 31 30 38 32 27   <div id='x1082'
0ec0: 20 73 74 79 6c 65 3d 27 64 69 73 70 6c 61 79 3a   style='display:
0ed0: 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69 6d  none;' class='im
0ee0: 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c 69  gcontainer'>. <i
0ef0: 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20 64  mg alt="syntax d
0f00: 69 61 67 72 61 6d 20 63 6f 6c 75 6d 6e 2d 63 6f  iagram column-co
0f10: 6e 73 74 72 61 69 6e 74 22 20 73 72 63 3d 22 69  nstraint" src="i
0f20: 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f 63 6f 6c  mages/syntax/col
0f30: 75 6d 6e 2d 63 6f 6e 73 74 72 61 69 6e 74 2e 67  umn-constraint.g
0f40: 69 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61 20  if" />.<p><b><a 
0f50: 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 63 6f 6e  href="syntax/con
0f60: 66 6c 69 63 74 2d 63 6c 61 75 73 65 2e 68 74 6d  flict-clause.htm
0f70: 6c 22 3e 63 6f 6e 66 6c 69 63 74 2d 63 6c 61 75  l">conflict-clau
0f80: 73 65 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74  se:</a></b>.<but
0f90: 74 6f 6e 20 69 64 3d 27 78 31 30 38 33 27 20 6f  ton id='x1083' o
0fa0: 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68  nclick='hideorsh
0fb0: 6f 77 28 22 78 31 30 38 33 22 2c 22 78 31 30 38  ow("x1083","x108
0fc0: 34 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f  4")'>show</butto
0fd0: 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d  n></p>. <div id=
0fe0: 27 78 31 30 38 34 27 20 73 74 79 6c 65 3d 27 64  'x1084' style='d
0ff0: 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c  isplay:none;' cl
1000: 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65  ass='imgcontaine
1010: 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73  r'>. <img alt="s
1020: 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 63 6f  yntax diagram co
1030: 6e 66 6c 69 63 74 2d 63 6c 61 75 73 65 22 20 73  nflict-clause" s
1040: 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61  rc="images/synta
1050: 78 2f 63 6f 6e 66 6c 69 63 74 2d 63 6c 61 75 73  x/conflict-claus
1060: 65 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e  e.gif" />.</div>
1070: 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22  .<p><b><a href="
1080: 73 79 6e 74 61 78 2f 65 78 70 72 2e 68 74 6d 6c  syntax/expr.html
1090: 22 3e 65 78 70 72 3a 3c 2f 61 3e 3c 2f 62 3e 0a  ">expr:</a></b>.
10a0: 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 30 38  <button id='x108
10b0: 35 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64 65  5' onclick='hide
10c0: 6f 72 73 68 6f 77 28 22 78 31 30 38 35 22 2c 22  orshow("x1085","
10d0: 78 31 30 38 36 22 29 27 3e 73 68 6f 77 3c 2f 62  x1086")'>show</b
10e0: 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76  utton></p>. <div
10f0: 20 69 64 3d 27 78 31 30 38 36 27 20 73 74 79 6c   id='x1086' styl
1100: 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b  e='display:none;
1110: 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74  ' class='imgcont
1120: 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c  ainer'>. <img al
1130: 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72 61  t="syntax diagra
1140: 6d 20 65 78 70 72 22 20 73 72 63 3d 22 69 6d 61  m expr" src="ima
1150: 67 65 73 2f 73 79 6e 74 61 78 2f 65 78 70 72 2e  ges/syntax/expr.
1160: 67 69 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61  gif" />.<p><b><a
1170: 20 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 66 69   href="syntax/fi
1180: 6c 74 65 72 2e 68 74 6d 6c 22 3e 66 69 6c 74 65  lter.html">filte
1190: 72 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74  r:</a></b>.<butt
11a0: 6f 6e 20 69 64 3d 27 78 31 30 38 37 27 20 6f 6e  on id='x1087' on
11b0: 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f  click='hideorsho
11c0: 77 28 22 78 31 30 38 37 22 2c 22 78 31 30 38 38  w("x1087","x1088
11d0: 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e  ")'>show</button
11e0: 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27  ></p>. <div id='
11f0: 78 31 30 38 38 27 20 73 74 79 6c 65 3d 27 64 69  x1088' style='di
1200: 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61  splay:none;' cla
1210: 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72  ss='imgcontainer
1220: 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79  '>. <img alt="sy
1230: 6e 74 61 78 20 64 69 61 67 72 61 6d 20 66 69 6c  ntax diagram fil
1240: 74 65 72 22 20 73 72 63 3d 22 69 6d 61 67 65 73  ter" src="images
1250: 2f 73 79 6e 74 61 78 2f 66 69 6c 74 65 72 2e 67  /syntax/filter.g
1260: 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70  if" />.</div>.<p
1270: 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e  ><b><a href="syn
1280: 74 61 78 2f 72 61 69 73 65 2d 66 75 6e 63 74 69  tax/raise-functi
1290: 6f 6e 2e 68 74 6d 6c 22 3e 72 61 69 73 65 2d 66  on.html">raise-f
12a0: 75 6e 63 74 69 6f 6e 3a 3c 2f 61 3e 3c 2f 62 3e  unction:</a></b>
12b0: 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 30  .<button id='x10
12c0: 38 39 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64  89' onclick='hid
12d0: 65 6f 72 73 68 6f 77 28 22 78 31 30 38 39 22 2c  eorshow("x1089",
12e0: 22 78 31 30 39 30 22 29 27 3e 73 68 6f 77 3c 2f  "x1090")'>show</
12f0: 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69  button></p>. <di
1300: 76 20 69 64 3d 27 78 31 30 39 30 27 20 73 74 79  v id='x1090' sty
1310: 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65  le='display:none
1320: 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e  ;' class='imgcon
1330: 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61  tainer'>. <img a
1340: 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72  lt="syntax diagr
1350: 61 6d 20 72 61 69 73 65 2d 66 75 6e 63 74 69 6f  am raise-functio
1360: 6e 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73  n" src="images/s
1370: 79 6e 74 61 78 2f 72 61 69 73 65 2d 66 75 6e 63  yntax/raise-func
1380: 74 69 6f 6e 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64  tion.gif" />.</d
1390: 69 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65  iv>.<p><b><a hre
13a0: 66 3d 22 73 79 6e 74 61 78 2f 73 65 6c 65 63 74  f="syntax/select
13b0: 2d 73 74 6d 74 2e 68 74 6d 6c 22 3e 73 65 6c 65  -stmt.html">sele
13c0: 63 74 2d 73 74 6d 74 3a 3c 2f 61 3e 3c 2f 62 3e  ct-stmt:</a></b>
13d0: 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 30  .<button id='x10
13e0: 39 31 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64  91' onclick='hid
13f0: 65 6f 72 73 68 6f 77 28 22 78 31 30 39 31 22 2c  eorshow("x1091",
1400: 22 78 31 30 39 32 22 29 27 3e 73 68 6f 77 3c 2f  "x1092")'>show</
1410: 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69  button></p>. <di
1420: 76 20 69 64 3d 27 78 31 30 39 32 27 20 73 74 79  v id='x1092' sty
1430: 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65  le='display:none
1440: 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e  ;' class='imgcon
1450: 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61  tainer'>. <img a
1460: 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72  lt="syntax diagr
1470: 61 6d 20 73 65 6c 65 63 74 2d 73 74 6d 74 22 20  am select-stmt" 
1480: 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74  src="images/synt
1490: 61 78 2f 73 65 6c 65 63 74 2d 73 74 6d 74 2e 67  ax/select-stmt.g
14a0: 69 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61 20  if" />.<p><b><a 
14b0: 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 63 6f 6d  href="syntax/com
14c0: 6d 6f 6e 2d 74 61 62 6c 65 2d 65 78 70 72 65 73  mon-table-expres
14d0: 73 69 6f 6e 2e 68 74 6d 6c 22 3e 63 6f 6d 6d 6f  sion.html">commo
14e0: 6e 2d 74 61 62 6c 65 2d 65 78 70 72 65 73 73 69  n-table-expressi
14f0: 6f 6e 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74  on:</a></b>.<but
1500: 74 6f 6e 20 69 64 3d 27 78 31 30 39 33 27 20 6f  ton id='x1093' o
1510: 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68  nclick='hideorsh
1520: 6f 77 28 22 78 31 30 39 33 22 2c 22 78 31 30 39  ow("x1093","x109
1530: 34 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f  4")'>show</butto
1540: 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d  n></p>. <div id=
1550: 27 78 31 30 39 34 27 20 73 74 79 6c 65 3d 27 64  'x1094' style='d
1560: 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c  isplay:none;' cl
1570: 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65  ass='imgcontaine
1580: 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73  r'>. <img alt="s
1590: 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 63 6f  yntax diagram co
15a0: 6d 6d 6f 6e 2d 74 61 62 6c 65 2d 65 78 70 72 65  mmon-table-expre
15b0: 73 73 69 6f 6e 22 20 73 72 63 3d 22 69 6d 61 67  ssion" src="imag
15c0: 65 73 2f 73 79 6e 74 61 78 2f 63 6f 6d 6d 6f 6e  es/syntax/common
15d0: 2d 74 61 62 6c 65 2d 65 78 70 72 65 73 73 69 6f  -table-expressio
15e0: 6e 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e  n.gif" />.</div>
15f0: 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22  .<p><b><a href="
1600: 73 79 6e 74 61 78 2f 63 6f 6d 70 6f 75 6e 64 2d  syntax/compound-
1610: 6f 70 65 72 61 74 6f 72 2e 68 74 6d 6c 22 3e 63  operator.html">c
1620: 6f 6d 70 6f 75 6e 64 2d 6f 70 65 72 61 74 6f 72  ompound-operator
1630: 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f  :</a></b>.<butto
1640: 6e 20 69 64 3d 27 78 31 30 39 35 27 20 6f 6e 63  n id='x1095' onc
1650: 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77  lick='hideorshow
1660: 28 22 78 31 30 39 35 22 2c 22 78 31 30 39 36 22  ("x1095","x1096"
1670: 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e  )'>show</button>
1680: 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78  </p>. <div id='x
1690: 31 30 39 36 27 20 73 74 79 6c 65 3d 27 64 69 73  1096' style='dis
16a0: 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73  play:none;' clas
16b0: 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27  s='imgcontainer'
16c0: 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e  >. <img alt="syn
16d0: 74 61 78 20 64 69 61 67 72 61 6d 20 63 6f 6d 70  tax diagram comp
16e0: 6f 75 6e 64 2d 6f 70 65 72 61 74 6f 72 22 20 73  ound-operator" s
16f0: 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61  rc="images/synta
1700: 78 2f 63 6f 6d 70 6f 75 6e 64 2d 6f 70 65 72 61  x/compound-opera
1710: 74 6f 72 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69  tor.gif" />.</di
1720: 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66  v>.<p><b><a href
1730: 3d 22 73 79 6e 74 61 78 2f 6a 6f 69 6e 2d 63 6c  ="syntax/join-cl
1740: 61 75 73 65 2e 68 74 6d 6c 22 3e 6a 6f 69 6e 2d  ause.html">join-
1750: 63 6c 61 75 73 65 3a 3c 2f 61 3e 3c 2f 62 3e 0a  clause:</a></b>.
1760: 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 30 39  <button id='x109
1770: 37 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64 65  7' onclick='hide
1780: 6f 72 73 68 6f 77 28 22 78 31 30 39 37 22 2c 22  orshow("x1097","
1790: 78 31 30 39 38 22 29 27 3e 73 68 6f 77 3c 2f 62  x1098")'>show</b
17a0: 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76  utton></p>. <div
17b0: 20 69 64 3d 27 78 31 30 39 38 27 20 73 74 79 6c   id='x1098' styl
17c0: 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b  e='display:none;
17d0: 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74  ' class='imgcont
17e0: 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c  ainer'>. <img al
17f0: 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72 61  t="syntax diagra
1800: 6d 20 6a 6f 69 6e 2d 63 6c 61 75 73 65 22 20 73  m join-clause" s
1810: 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61  rc="images/synta
1820: 78 2f 6a 6f 69 6e 2d 63 6c 61 75 73 65 2e 67 69  x/join-clause.gi
1830: 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68  f" />.<p><b><a h
1840: 72 65 66 3d 22 73 79 6e 74 61 78 2f 6a 6f 69 6e  ref="syntax/join
1850: 2d 63 6f 6e 73 74 72 61 69 6e 74 2e 68 74 6d 6c  -constraint.html
1860: 22 3e 6a 6f 69 6e 2d 63 6f 6e 73 74 72 61 69 6e  ">join-constrain
1870: 74 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74  t:</a></b>.<butt
1880: 6f 6e 20 69 64 3d 27 78 31 30 39 39 27 20 6f 6e  on id='x1099' on
1890: 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f  click='hideorsho
18a0: 77 28 22 78 31 30 39 39 22 2c 22 78 31 31 30 30  w("x1099","x1100
18b0: 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e  ")'>show</button
18c0: 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27  ></p>. <div id='
18d0: 78 31 31 30 30 27 20 73 74 79 6c 65 3d 27 64 69  x1100' style='di
18e0: 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61  splay:none;' cla
18f0: 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72  ss='imgcontainer
1900: 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79  '>. <img alt="sy
1910: 6e 74 61 78 20 64 69 61 67 72 61 6d 20 6a 6f 69  ntax diagram joi
1920: 6e 2d 63 6f 6e 73 74 72 61 69 6e 74 22 20 73 72  n-constraint" sr
1930: 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78  c="images/syntax
1940: 2f 6a 6f 69 6e 2d 63 6f 6e 73 74 72 61 69 6e 74  /join-constraint
1950: 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a  .gif" />.</div>.
1960: 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73  <p><b><a href="s
1970: 79 6e 74 61 78 2f 6a 6f 69 6e 2d 6f 70 65 72 61  yntax/join-opera
1980: 74 6f 72 2e 68 74 6d 6c 22 3e 6a 6f 69 6e 2d 6f  tor.html">join-o
1990: 70 65 72 61 74 6f 72 3a 3c 2f 61 3e 3c 2f 62 3e  perator:</a></b>
19a0: 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 31  .<button id='x11
19b0: 30 31 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64  01' onclick='hid
19c0: 65 6f 72 73 68 6f 77 28 22 78 31 31 30 31 22 2c  eorshow("x1101",
19d0: 22 78 31 31 30 32 22 29 27 3e 73 68 6f 77 3c 2f  "x1102")'>show</
19e0: 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69  button></p>. <di
19f0: 76 20 69 64 3d 27 78 31 31 30 32 27 20 73 74 79  v id='x1102' sty
1a00: 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65  le='display:none
1a10: 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e  ;' class='imgcon
1a20: 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61  tainer'>. <img a
1a30: 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72  lt="syntax diagr
1a40: 61 6d 20 6a 6f 69 6e 2d 6f 70 65 72 61 74 6f 72  am join-operator
1a50: 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79  " src="images/sy
1a60: 6e 74 61 78 2f 6a 6f 69 6e 2d 6f 70 65 72 61 74  ntax/join-operat
1a70: 6f 72 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76  or.gif" />.</div
1a80: 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e 3c 62 3e 3c  >.</div>.<p><b><
1a90: 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 6f  a href="syntax/o
1aa0: 72 64 65 72 69 6e 67 2d 74 65 72 6d 2e 68 74 6d  rdering-term.htm
1ab0: 6c 22 3e 6f 72 64 65 72 69 6e 67 2d 74 65 72 6d  l">ordering-term
1ac0: 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f  :</a></b>.<butto
1ad0: 6e 20 69 64 3d 27 78 31 31 30 33 27 20 6f 6e 63  n id='x1103' onc
1ae0: 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77  lick='hideorshow
1af0: 28 22 78 31 31 30 33 22 2c 22 78 31 31 30 34 22  ("x1103","x1104"
1b00: 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e  )'>show</button>
1b10: 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78  </p>. <div id='x
1b20: 31 31 30 34 27 20 73 74 79 6c 65 3d 27 64 69 73  1104' style='dis
1b30: 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73  play:none;' clas
1b40: 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27  s='imgcontainer'
1b50: 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e  >. <img alt="syn
1b60: 74 61 78 20 64 69 61 67 72 61 6d 20 6f 72 64 65  tax diagram orde
1b70: 72 69 6e 67 2d 74 65 72 6d 22 20 73 72 63 3d 22  ring-term" src="
1b80: 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f 6f 72  images/syntax/or
1b90: 64 65 72 69 6e 67 2d 74 65 72 6d 2e 67 69 66 22  dering-term.gif"
1ba0: 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e 3c 62   />.</div>.<p><b
1bb0: 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78  ><a href="syntax
1bc0: 2f 72 65 73 75 6c 74 2d 63 6f 6c 75 6d 6e 2e 68  /result-column.h
1bd0: 74 6d 6c 22 3e 72 65 73 75 6c 74 2d 63 6f 6c 75  tml">result-colu
1be0: 6d 6e 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74  mn:</a></b>.<but
1bf0: 74 6f 6e 20 69 64 3d 27 78 31 31 30 35 27 20 6f  ton id='x1105' o
1c00: 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68  nclick='hideorsh
1c10: 6f 77 28 22 78 31 31 30 35 22 2c 22 78 31 31 30  ow("x1105","x110
1c20: 36 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f  6")'>show</butto
1c30: 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d  n></p>. <div id=
1c40: 27 78 31 31 30 36 27 20 73 74 79 6c 65 3d 27 64  'x1106' style='d
1c50: 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c  isplay:none;' cl
1c60: 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65  ass='imgcontaine
1c70: 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73  r'>. <img alt="s
1c80: 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 72 65  yntax diagram re
1c90: 73 75 6c 74 2d 63 6f 6c 75 6d 6e 22 20 73 72 63  sult-column" src
1ca0: 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f  ="images/syntax/
1cb0: 72 65 73 75 6c 74 2d 63 6f 6c 75 6d 6e 2e 67 69  result-column.gi
1cc0: 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e  f" />.</div>.<p>
1cd0: 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74  <b><a href="synt
1ce0: 61 78 2f 74 61 62 6c 65 2d 6f 72 2d 73 75 62 71  ax/table-or-subq
1cf0: 75 65 72 79 2e 68 74 6d 6c 22 3e 74 61 62 6c 65  uery.html">table
1d00: 2d 6f 72 2d 73 75 62 71 75 65 72 79 3a 3c 2f 61  -or-subquery:</a
1d10: 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64  ></b>.<button id
1d20: 3d 27 78 31 31 30 37 27 20 6f 6e 63 6c 69 63 6b  ='x1107' onclick
1d30: 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31  ='hideorshow("x1
1d40: 31 30 37 22 2c 22 78 31 31 30 38 22 29 27 3e 73  107","x1108")'>s
1d50: 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e  how</button></p>
1d60: 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 31 30 38  . <div id='x1108
1d70: 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c 61 79  ' style='display
1d80: 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69  :none;' class='i
1d90: 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c  mgcontainer'>. <
1da0: 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20  img alt="syntax 
1db0: 64 69 61 67 72 61 6d 20 74 61 62 6c 65 2d 6f 72  diagram table-or
1dc0: 2d 73 75 62 71 75 65 72 79 22 20 73 72 63 3d 22  -subquery" src="
1dd0: 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f 74 61  images/syntax/ta
1de0: 62 6c 65 2d 6f 72 2d 73 75 62 71 75 65 72 79 2e  ble-or-subquery.
1df0: 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c  gif" />.</div>.<
1e00: 2f 64 69 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68  /div>.<p><b><a h
1e10: 72 65 66 3d 22 73 79 6e 74 61 78 2f 77 69 6e 64  ref="syntax/wind
1e20: 6f 77 2d 64 65 66 6e 2e 68 74 6d 6c 22 3e 77 69  ow-defn.html">wi
1e30: 6e 64 6f 77 2d 64 65 66 6e 3a 3c 2f 61 3e 3c 2f  ndow-defn:</a></
1e40: 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78  b>.<button id='x
1e50: 31 31 30 39 27 20 6f 6e 63 6c 69 63 6b 3d 27 68  1109' onclick='h
1e60: 69 64 65 6f 72 73 68 6f 77 28 22 78 31 31 30 39  ideorshow("x1109
1e70: 22 2c 22 78 31 31 31 30 22 29 27 3e 73 68 6f 77  ","x1110")'>show
1e80: 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c  </button></p>. <
1e90: 64 69 76 20 69 64 3d 27 78 31 31 31 30 27 20 73  div id='x1110' s
1ea0: 74 79 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f  tyle='display:no
1eb0: 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63  ne;' class='imgc
1ec0: 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67  ontainer'>. <img
1ed0: 20 61 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61   alt="syntax dia
1ee0: 67 72 61 6d 20 77 69 6e 64 6f 77 2d 64 65 66 6e  gram window-defn
1ef0: 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79  " src="images/sy
1f00: 6e 74 61 78 2f 77 69 6e 64 6f 77 2d 64 65 66 6e  ntax/window-defn
1f10: 2e 67 69 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c  .gif" />.<p><b><
1f20: 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 66  a href="syntax/f
1f30: 72 61 6d 65 2d 73 70 65 63 2e 68 74 6d 6c 22 3e  rame-spec.html">
1f40: 66 72 61 6d 65 2d 73 70 65 63 3a 3c 2f 61 3e 3c  frame-spec:</a><
1f50: 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27  /b>.<button id='
1f60: 78 31 31 31 31 27 20 6f 6e 63 6c 69 63 6b 3d 27  x1111' onclick='
1f70: 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31 31 31  hideorshow("x111
1f80: 31 22 2c 22 78 31 31 31 32 22 29 27 3e 73 68 6f  1","x1112")'>sho
1f90: 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20  w</button></p>. 
1fa0: 3c 64 69 76 20 69 64 3d 27 78 31 31 31 32 27 20  <div id='x1112' 
1fb0: 73 74 79 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e  style='display:n
1fc0: 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67  one;' class='img
1fd0: 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d  container'>. <im
1fe0: 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20 64 69  g alt="syntax di
1ff0: 61 67 72 61 6d 20 66 72 61 6d 65 2d 73 70 65 63  agram frame-spec
2000: 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79  " src="images/sy
2010: 6e 74 61 78 2f 66 72 61 6d 65 2d 73 70 65 63 2e  ntax/frame-spec.
2020: 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c  gif" />.</div>.<
2030: 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79  p><b><a href="sy
2040: 6e 74 61 78 2f 6f 72 64 65 72 69 6e 67 2d 74 65  ntax/ordering-te
2050: 72 6d 2e 68 74 6d 6c 22 3e 6f 72 64 65 72 69 6e  rm.html">orderin
2060: 67 2d 74 65 72 6d 3a 3c 2f 61 3e 3c 2f 62 3e 0a  g-term:</a></b>.
2070: 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 31 31  <button id='x111
2080: 33 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64 65  3' onclick='hide
2090: 6f 72 73 68 6f 77 28 22 78 31 31 31 33 22 2c 22  orshow("x1113","
20a0: 78 31 31 31 34 22 29 27 3e 73 68 6f 77 3c 2f 62  x1114")'>show</b
20b0: 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76  utton></p>. <div
20c0: 20 69 64 3d 27 78 31 31 31 34 27 20 73 74 79 6c   id='x1114' styl
20d0: 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b  e='display:none;
20e0: 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74  ' class='imgcont
20f0: 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c  ainer'>. <img al
2100: 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72 61  t="syntax diagra
2110: 6d 20 6f 72 64 65 72 69 6e 67 2d 74 65 72 6d 22  m ordering-term"
2120: 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e   src="images/syn
2130: 74 61 78 2f 6f 72 64 65 72 69 6e 67 2d 74 65 72  tax/ordering-ter
2140: 6d 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e  m.gif" />.</div>
2150: 0a 3c 2f 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c  .</div>.</div>.<
2160: 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79  p><b><a href="sy
2170: 6e 74 61 78 2f 66 6f 72 65 69 67 6e 2d 6b 65 79  ntax/foreign-key
2180: 2d 63 6c 61 75 73 65 2e 68 74 6d 6c 22 3e 66 6f  -clause.html">fo
2190: 72 65 69 67 6e 2d 6b 65 79 2d 63 6c 61 75 73 65  reign-key-clause
21a0: 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f  :</a></b>.<butto
21b0: 6e 20 69 64 3d 27 78 31 31 31 35 27 20 6f 6e 63  n id='x1115' onc
21c0: 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77  lick='hideorshow
21d0: 28 22 78 31 31 31 35 22 2c 22 78 31 31 31 36 22  ("x1115","x1116"
21e0: 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e  )'>show</button>
21f0: 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78  </p>. <div id='x
2200: 31 31 31 36 27 20 73 74 79 6c 65 3d 27 64 69 73  1116' style='dis
2210: 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73  play:none;' clas
2220: 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27  s='imgcontainer'
2230: 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e  >. <img alt="syn
2240: 74 61 78 20 64 69 61 67 72 61 6d 20 66 6f 72 65  tax diagram fore
2250: 69 67 6e 2d 6b 65 79 2d 63 6c 61 75 73 65 22 20  ign-key-clause" 
2260: 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74  src="images/synt
2270: 61 78 2f 66 6f 72 65 69 67 6e 2d 6b 65 79 2d 63  ax/foreign-key-c
2280: 6c 61 75 73 65 2e 67 69 66 22 20 2f 3e 0a 3c 2f  lause.gif" />.</
2290: 64 69 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72  div>.<p><b><a hr
22a0: 65 66 3d 22 73 79 6e 74 61 78 2f 6c 69 74 65 72  ef="syntax/liter
22b0: 61 6c 2d 76 61 6c 75 65 2e 68 74 6d 6c 22 3e 6c  al-value.html">l
22c0: 69 74 65 72 61 6c 2d 76 61 6c 75 65 3a 3c 2f 61  iteral-value:</a
22d0: 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64  ></b>.<button id
22e0: 3d 27 78 31 31 31 37 27 20 6f 6e 63 6c 69 63 6b  ='x1117' onclick
22f0: 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31  ='hideorshow("x1
2300: 31 31 37 22 2c 22 78 31 31 31 38 22 29 27 3e 73  117","x1118")'>s
2310: 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e  how</button></p>
2320: 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 31 31 38  . <div id='x1118
2330: 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c 61 79  ' style='display
2340: 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69  :none;' class='i
2350: 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c  mgcontainer'>. <
2360: 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20  img alt="syntax 
2370: 64 69 61 67 72 61 6d 20 6c 69 74 65 72 61 6c 2d  diagram literal-
2380: 76 61 6c 75 65 22 20 73 72 63 3d 22 69 6d 61 67  value" src="imag
2390: 65 73 2f 73 79 6e 74 61 78 2f 6c 69 74 65 72 61  es/syntax/litera
23a0: 6c 2d 76 61 6c 75 65 2e 67 69 66 22 20 2f 3e 0a  l-value.gif" />.
23b0: 3c 2f 64 69 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20  </div>.<p><b><a 
23c0: 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 73 69 67  href="syntax/sig
23d0: 6e 65 64 2d 6e 75 6d 62 65 72 2e 68 74 6d 6c 22  ned-number.html"
23e0: 3e 73 69 67 6e 65 64 2d 6e 75 6d 62 65 72 3a 3c  >signed-number:<
23f0: 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20  /a></b>.<button 
2400: 69 64 3d 27 78 31 31 31 39 27 20 6f 6e 63 6c 69  id='x1119' oncli
2410: 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22  ck='hideorshow("
2420: 78 31 31 31 39 22 2c 22 78 31 31 32 30 22 29 27  x1119","x1120")'
2430: 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f  >show</button></
2440: 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 31  p>. <div id='x11
2450: 32 30 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c  20' style='displ
2460: 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d  ay:none;' class=
2470: 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a  'imgcontainer'>.
2480: 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61   <img alt="synta
2490: 78 20 64 69 61 67 72 61 6d 20 73 69 67 6e 65 64  x diagram signed
24a0: 2d 6e 75 6d 62 65 72 22 20 73 72 63 3d 22 69 6d  -number" src="im
24b0: 61 67 65 73 2f 73 79 6e 74 61 78 2f 73 69 67 6e  ages/syntax/sign
24c0: 65 64 2d 6e 75 6d 62 65 72 2e 67 69 66 22 20 2f  ed-number.gif" /
24d0: 3e 0a 3c 2f 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a  >.</div>.</div>.
24e0: 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73  <p><b><a href="s
24f0: 79 6e 74 61 78 2f 74 79 70 65 2d 6e 61 6d 65 2e  yntax/type-name.
2500: 68 74 6d 6c 22 3e 74 79 70 65 2d 6e 61 6d 65 3a  html">type-name:
2510: 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e  </a></b>.<button
2520: 20 69 64 3d 27 78 31 31 32 31 27 20 6f 6e 63 6c   id='x1121' oncl
2530: 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77 28  ick='hideorshow(
2540: 22 78 31 31 32 31 22 2c 22 78 31 31 32 32 22 29  "x1121","x1122")
2550: 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c  '>show</button><
2560: 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78 31  /p>. <div id='x1
2570: 31 32 32 27 20 73 74 79 6c 65 3d 27 64 69 73 70  122' style='disp
2580: 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73  lay:none;' class
2590: 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e  ='imgcontainer'>
25a0: 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74  . <img alt="synt
25b0: 61 78 20 64 69 61 67 72 61 6d 20 74 79 70 65 2d  ax diagram type-
25c0: 6e 61 6d 65 22 20 73 72 63 3d 22 69 6d 61 67 65  name" src="image
25d0: 73 2f 73 79 6e 74 61 78 2f 74 79 70 65 2d 6e 61  s/syntax/type-na
25e0: 6d 65 2e 67 69 66 22 20 2f 3e 0a 3c 70 3e 3c 62  me.gif" />.<p><b
25f0: 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78  ><a href="syntax
2600: 2f 73 69 67 6e 65 64 2d 6e 75 6d 62 65 72 2e 68  /signed-number.h
2610: 74 6d 6c 22 3e 73 69 67 6e 65 64 2d 6e 75 6d 62  tml">signed-numb
2620: 65 72 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74  er:</a></b>.<but
2630: 74 6f 6e 20 69 64 3d 27 78 31 31 32 33 27 20 6f  ton id='x1123' o
2640: 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68  nclick='hideorsh
2650: 6f 77 28 22 78 31 31 32 33 22 2c 22 78 31 31 32  ow("x1123","x112
2660: 34 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f  4")'>show</butto
2670: 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d  n></p>. <div id=
2680: 27 78 31 31 32 34 27 20 73 74 79 6c 65 3d 27 64  'x1124' style='d
2690: 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c  isplay:none;' cl
26a0: 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65  ass='imgcontaine
26b0: 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73  r'>. <img alt="s
26c0: 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 73 69  yntax diagram si
26d0: 67 6e 65 64 2d 6e 75 6d 62 65 72 22 20 73 72 63  gned-number" src
26e0: 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f  ="images/syntax/
26f0: 73 69 67 6e 65 64 2d 6e 75 6d 62 65 72 2e 67 69  signed-number.gi
2700: 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 2f 64  f" />.</div>.</d
2710: 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c 2f 64 69 76  iv>.</div>.</div
2720: 3e 0a 0a 0a 3c 70 3e 53 51 4c 69 74 65 20 73 75  >...<p>SQLite su
2730: 70 70 6f 72 74 73 20 61 20 6c 69 6d 69 74 65 64  pports a limited
2740: 20 73 75 62 73 65 74 20 6f 66 20 41 4c 54 45 52   subset of ALTER
2750: 20 54 41 42 4c 45 2e 0a 54 68 65 20 41 4c 54 45   TABLE..The ALTE
2760: 52 20 54 41 42 4c 45 20 63 6f 6d 6d 61 6e 64 20  R TABLE command 
2770: 69 6e 20 53 51 4c 69 74 65 20 61 6c 6c 6f 77 73  in SQLite allows
2780: 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 65 6e   the user to ren
2790: 61 6d 65 20 61 20 74 61 62 6c 65 2c 0a 74 6f 20  ame a table,.to 
27a0: 72 65 6e 61 6d 65 20 61 20 63 6f 6c 75 6d 6e 20  rename a column 
27b0: 77 69 74 68 69 6e 20 61 20 74 61 62 6c 65 2c 20  within a table, 
27c0: 6f 72 20 74 6f 20 61 64 64 20 61 20 6e 65 77 20  or to add a new 
27d0: 63 6f 6c 75 6d 6e 20 74 6f 20 61 6e 20 65 78 69  column to an exi
27e0: 73 74 69 6e 67 20 74 61 62 6c 65 2e 0a 0a 3c 61  sting table...<a
27f0: 20 6e 61 6d 65 3d 22 61 6c 74 65 72 74 61 62 72   name="altertabr
2800: 65 6e 61 6d 65 22 3e 3c 2f 61 3e 0a 0a 3c 68 33  ename"></a>..<h3
2810: 3e 41 4c 54 45 52 20 54 41 42 4c 45 20 52 45 4e  >ALTER TABLE REN
2820: 41 4d 45 3c 2f 68 33 3e 0a 0a 3c 70 3e 20 54 68  AME</h3>..<p> Th
2830: 65 20 52 45 4e 41 4d 45 20 54 4f 20 73 79 6e 74  e RENAME TO synt
2840: 61 78 20 63 68 61 6e 67 65 73 20 74 68 65 20 6e  ax changes the n
2850: 61 6d 65 20 6f 66 20 3c 73 70 61 6e 20 63 6c 61  ame of <span cla
2860: 73 73 3d 27 79 79 74 65 72 6d 27 3e 74 61 62 6c  ss='yyterm'>tabl
2870: 65 2d 6e 61 6d 65 3c 2f 73 70 61 6e 3e 0a 74 6f  e-name</span>.to
2880: 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 27 79 79   <span class='yy
2890: 74 65 72 6d 27 3e 6e 65 77 2d 74 61 62 6c 65 2d  term'>new-table-
28a0: 6e 61 6d 65 3c 2f 73 70 61 6e 3e 2e 0a 54 68 69  name</span>..Thi
28b0: 73 20 63 6f 6d 6d 61 6e 64 20 0a 63 61 6e 6e 6f  s command .canno
28c0: 74 20 62 65 20 75 73 65 64 20 74 6f 20 6d 6f 76  t be used to mov
28d0: 65 20 61 20 74 61 62 6c 65 20 62 65 74 77 65 65  e a table betwee
28e0: 6e 20 61 74 74 61 63 68 65 64 20 64 61 74 61 62  n attached datab
28f0: 61 73 65 73 2c 20 6f 6e 6c 79 20 74 6f 20 72 65  ases, only to re
2900: 6e 61 6d 65 20 0a 61 20 74 61 62 6c 65 20 77 69  name .a table wi
2910: 74 68 69 6e 20 74 68 65 20 73 61 6d 65 20 64 61  thin the same da
2920: 74 61 62 61 73 65 2e 0a 49 66 20 74 68 65 20 74  tabase..If the t
2930: 61 62 6c 65 20 62 65 69 6e 67 20 72 65 6e 61 6d  able being renam
2940: 65 64 20 68 61 73 20 74 72 69 67 67 65 72 73 20  ed has triggers 
2950: 6f 72 20 69 6e 64 69 63 65 73 2c 20 74 68 65 6e  or indices, then
2960: 20 74 68 65 73 65 20 72 65 6d 61 69 6e 0a 61 74   these remain.at
2970: 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 74 61  tached to the ta
2980: 62 6c 65 20 61 66 74 65 72 20 69 74 20 68 61 73  ble after it has
2990: 20 62 65 65 6e 20 72 65 6e 61 6d 65 64 2e 0a 0a   been renamed...
29a0: 3c 62 6c 6f 63 6b 71 75 6f 74 65 20 73 74 79 6c  <blockquote styl
29b0: 65 3d 27 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f  e='background-co
29c0: 6c 6f 72 3a 20 23 66 66 64 30 64 30 3b 27 3e 0a  lor: #ffd0d0;'>.
29d0: 3c 62 3e 43 6f 6d 70 61 74 69 62 69 6c 69 74 79  <b>Compatibility
29e0: 20 4e 6f 74 65 3a 3c 2f 62 3e 0a 54 68 65 20 62   Note:</b>.The b
29f0: 65 68 61 76 69 6f 72 20 6f 66 20 41 4c 54 45 52  ehavior of ALTER
2a00: 20 54 41 42 4c 45 20 77 68 65 6e 20 72 65 6e 61   TABLE when rena
2a10: 6d 69 6e 67 20 61 20 74 61 62 6c 65 20 77 61 73  ming a table was
2a20: 20 65 6e 68 61 6e 63 65 64 0a 69 6e 20 76 65 72   enhanced.in ver
2a30: 73 69 6f 6e 73 20 33 2e 32 35 2e 30 20 28 32 30  sions 3.25.0 (20
2a40: 31 38 2d 30 39 2d 31 35 29 20 61 6e 64 20 33 2e  18-09-15) and 3.
2a50: 32 36 2e 30 20 28 32 30 31 38 2d 31 32 2d 30 31  26.0 (2018-12-01
2a60: 29 0a 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 61  ).in order to ca
2a70: 72 72 79 20 74 68 65 20 72 65 6e 61 6d 65 20 6f  rry the rename o
2a80: 70 65 72 61 74 69 6f 6e 20 66 6f 72 77 61 72 64  peration forward
2a90: 20 69 6e 74 6f 20 74 72 69 67 67 65 72 73 20 61   into triggers a
2aa0: 6e 64 0a 76 69 65 77 73 20 74 68 61 74 20 72 65  nd.views that re
2ab0: 66 65 72 65 6e 63 65 20 74 68 65 20 72 65 6e 61  ference the rena
2ac0: 6d 65 64 20 74 61 62 6c 65 2e 20 20 54 68 69 73  med table.  This
2ad0: 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 61   is considered a
2ae0: 6e 0a 69 6d 70 72 6f 76 65 6d 65 6e 74 2e 20 41  n.improvement. A
2af0: 70 70 6c 69 63 61 74 69 6f 6e 73 20 74 68 61 74  pplications that
2b00: 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 6f   depend on the o
2b10: 6c 64 65 72 20 28 61 6e 64 0a 61 72 67 75 61 62  lder (and.arguab
2b20: 6c 79 20 62 75 67 67 79 29 20 62 65 68 61 76 69  ly buggy) behavi
2b30: 6f 72 20 63 61 6e 20 75 73 65 20 74 68 65 0a 3c  or can use the.<
2b40: 61 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e 68  a href="pragma.h
2b50: 74 6d 6c 23 70 72 61 67 6d 61 5f 6c 65 67 61 63  tml#pragma_legac
2b60: 79 5f 61 6c 74 65 72 5f 74 61 62 6c 65 22 3e 50  y_alter_table">P
2b70: 52 41 47 4d 41 20 6c 65 67 61 63 79 5f 61 6c 74  RAGMA legacy_alt
2b80: 65 72 5f 74 61 62 6c 65 3d 4f 4e 3c 2f 61 3e 20  er_table=ON</a> 
2b90: 73 74 61 74 65 6d 65 6e 74 20 6f 72 20 74 68 65  statement or the
2ba0: 0a 3c 61 20 68 72 65 66 3d 22 63 33 72 65 66 2f  .<a href="c3ref/
2bb0: 63 5f 64 62 63 6f 6e 66 69 67 5f 64 65 66 65 6e  c_dbconfig_defen
2bc0: 73 69 76 65 2e 68 74 6d 6c 23 73 71 6c 69 74 65  sive.html#sqlite
2bd0: 64 62 63 6f 6e 66 69 67 6c 65 67 61 63 79 61 6c  dbconfiglegacyal
2be0: 74 65 72 74 61 62 6c 65 22 3e 53 51 4c 49 54 45  tertable">SQLITE
2bf0: 5f 44 42 43 4f 4e 46 49 47 5f 4c 45 47 41 43 59  _DBCONFIG_LEGACY
2c00: 5f 41 4c 54 45 52 5f 54 41 42 4c 45 3c 2f 61 3e  _ALTER_TABLE</a>
2c10: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70   configuration p
2c20: 61 72 61 6d 65 74 65 72 0a 6f 6e 20 3c 61 20 68  arameter.on <a h
2c30: 72 65 66 3d 22 63 33 72 65 66 2f 64 62 5f 63 6f  ref="c3ref/db_co
2c40: 6e 66 69 67 2e 68 74 6d 6c 22 3e 73 71 6c 69 74  nfig.html">sqlit
2c50: 65 33 5f 64 62 5f 63 6f 6e 66 69 67 28 29 3c 2f  e3_db_config()</
2c60: 61 3e 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20  a> interface to 
2c70: 6d 61 6b 65 20 41 4c 54 45 52 20 54 41 42 4c 45  make ALTER TABLE
2c80: 20 52 45 4e 41 4d 45 0a 62 65 68 61 76 65 20 61   RENAME.behave a
2c90: 73 20 69 74 20 64 69 64 20 70 72 69 6f 72 20 74  s it did prior t
2ca0: 6f 20 76 65 72 73 69 6f 6e 20 33 2e 32 35 2e 30  o version 3.25.0
2cb0: 2e 0a 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a  ..</blockquote>.
2cc0: 0a 3c 70 3e 0a 42 65 67 69 6e 6e 69 6e 67 20 77  .<p>.Beginning w
2cd0: 69 74 68 20 72 65 6c 65 61 73 65 20 33 2e 32 35  ith release 3.25
2ce0: 2e 30 20 28 32 30 31 38 2d 30 39 2d 31 35 29 2c  .0 (2018-09-15),
2cf0: 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74   references to t
2d00: 68 65 20 74 61 62 6c 65 0a 77 69 74 68 69 6e 20  he table.within 
2d10: 74 72 69 67 67 65 72 20 62 6f 64 69 65 73 20 61  trigger bodies a
2d20: 6e 64 20 76 69 65 77 20 64 65 66 69 6e 69 74 69  nd view definiti
2d30: 6f 6e 73 20 61 72 65 20 61 6c 73 6f 20 72 65 6e  ons are also ren
2d40: 61 6d 65 64 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 20  amed..</p>..<p> 
2d50: 50 72 69 6f 72 20 74 6f 20 76 65 72 73 69 6f 6e  Prior to version
2d60: 20 33 2e 32 36 2e 30 20 28 32 30 31 38 2d 31 32   3.26.0 (2018-12
2d70: 2d 30 31 29 2c 20 46 4f 52 45 49 47 4e 20 4b 45  -01), FOREIGN KE
2d80: 59 20 72 65 66 65 72 65 6e 63 65 73 0a 74 6f 20  Y references.to 
2d90: 61 20 74 61 62 6c 65 20 74 68 61 74 20 69 73 20  a table that is 
2da0: 72 65 6e 61 6d 65 64 20 77 65 72 65 20 6f 6e 6c  renamed were onl
2db0: 79 20 65 64 69 74 65 64 20 69 66 20 74 68 65 0a  y edited if the.
2dc0: 3c 61 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e  <a href="pragma.
2dd0: 68 74 6d 6c 23 70 72 61 67 6d 61 5f 66 6f 72 65  html#pragma_fore
2de0: 69 67 6e 5f 6b 65 79 73 22 3e 50 52 41 47 4d 41  ign_keys">PRAGMA
2df0: 20 66 6f 72 65 69 67 6e 5f 6b 65 79 73 3d 4f 4e   foreign_keys=ON
2e00: 3c 2f 61 3e 2c 20 6f 72 20 69 6e 20 6f 74 68 65  </a>, or in othe
2e10: 72 20 77 6f 72 64 73 20 69 66 0a 3c 61 20 68 72  r words if.<a hr
2e20: 65 66 3d 22 66 6f 72 65 69 67 6e 6b 65 79 73 2e  ef="foreignkeys.
2e30: 68 74 6d 6c 22 3e 66 6f 72 65 69 67 6e 20 6b 65  html">foreign ke
2e40: 79 20 63 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 61  y constraints</a
2e50: 3e 20 77 65 72 65 20 62 65 67 69 6e 20 65 6e 66  > were begin enf
2e60: 6f 72 63 65 64 2e 20 20 57 69 74 68 0a 3c 61 20  orced.  With.<a 
2e70: 68 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d  href="pragma.htm
2e80: 6c 23 70 72 61 67 6d 61 5f 66 6f 72 65 69 67 6e  l#pragma_foreign
2e90: 5f 6b 65 79 73 22 3e 50 52 41 47 4d 41 20 66 6f  _keys">PRAGMA fo
2ea0: 72 65 69 67 6e 5f 6b 65 79 73 3d 4f 46 46 3c 2f  reign_keys=OFF</
2eb0: 61 3e 2c 20 46 4f 52 45 49 47 4e 20 4b 45 59 20  a>, FOREIGN KEY 
2ec0: 63 6f 6e 73 74 72 61 69 6e 74 73 20 77 6f 75 6c  constraints woul
2ed0: 64 20 6e 6f 74 20 62 65 20 63 68 61 6e 67 65 64  d not be changed
2ee0: 0a 77 68 65 6e 20 74 68 65 20 74 61 62 6c 65 20  .when the table 
2ef0: 74 68 61 74 20 74 68 65 20 66 6f 72 65 69 67 6e  that the foreign
2f00: 20 6b 65 79 20 72 65 66 65 72 72 65 64 20 74 6f   key referred to
2f10: 20 28 74 68 65 20 22 3c 61 20 68 72 65 66 3d 22   (the "<a href="
2f20: 66 6f 72 65 69 67 6e 6b 65 79 73 2e 68 74 6d 6c  foreignkeys.html
2f30: 23 70 61 72 65 6e 74 63 68 69 6c 64 22 3e 70 61  #parentchild">pa
2f40: 72 65 6e 74 20 74 61 62 6c 65 3c 2f 61 3e 22 29  rent table</a>")
2f50: 0a 77 61 73 20 72 65 6e 61 6d 65 64 2e 20 20 42  .was renamed.  B
2f60: 65 67 69 6e 6e 69 6e 67 20 77 69 74 68 20 76 65  eginning with ve
2f70: 72 73 69 6f 6e 20 33 2e 32 36 2e 30 2c 20 46 4f  rsion 3.26.0, FO
2f80: 52 45 49 47 4e 20 4b 45 59 20 63 6f 6e 73 74 72  REIGN KEY constr
2f90: 61 69 6e 74 73 0a 61 72 65 20 61 6c 77 61 79 73  aints.are always
2fa0: 20 63 6f 6e 76 65 72 74 65 64 20 77 68 65 6e 20   converted when 
2fb0: 61 20 74 61 62 6c 65 20 69 73 20 72 65 6e 61 6d  a table is renam
2fc0: 65 64 2c 20 75 6e 6c 65 73 73 20 74 68 65 0a 3c  ed, unless the.<
2fd0: 61 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e 68  a href="pragma.h
2fe0: 74 6d 6c 23 70 72 61 67 6d 61 5f 6c 65 67 61 63  tml#pragma_legac
2ff0: 79 5f 61 6c 74 65 72 5f 74 61 62 6c 65 22 3e 50  y_alter_table">P
3000: 52 41 47 4d 41 20 6c 65 67 61 63 79 5f 61 6c 74  RAGMA legacy_alt
3010: 65 72 5f 74 61 62 6c 65 3d 4f 4e 3c 2f 61 3e 20  er_table=ON</a> 
3020: 73 65 74 74 69 6e 67 20 69 73 20 65 6e 67 61 67  setting is engag
3030: 65 64 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69  ed.  The followi
3040: 6e 67 0a 74 61 62 6c 65 20 73 75 6d 6d 61 72 69  ng.table summari
3050: 65 73 20 74 68 65 20 64 69 66 66 65 72 65 6e 63  es the differenc
3060: 65 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75  e:</p>..<blockqu
3070: 6f 74 65 3e 0a 3c 74 61 62 6c 65 20 62 6f 72 64  ote>.<table bord
3080: 65 72 3d 22 31 22 20 63 65 6c 6c 70 61 64 64 69  er="1" cellpaddi
3090: 6e 67 3d 22 32 22 20 63 65 6c 6c 73 70 61 63 69  ng="2" cellspaci
30a0: 6e 67 3d 22 30 22 3e 0a 3c 74 72 3e 0a 3c 74 68  ng="0">.<tr>.<th
30b0: 3e 50 52 41 47 4d 41 20 66 6f 72 65 69 67 6e 5f  >PRAGMA foreign_
30c0: 6b 65 79 73 0a 3c 74 68 3e 50 52 41 47 4d 41 20  keys.<th>PRAGMA 
30d0: 6c 65 67 61 63 79 5f 61 6c 74 65 72 5f 74 61 62  legacy_alter_tab
30e0: 6c 65 0a 3c 74 68 3e 3c 61 20 68 72 65 66 3d 22  le.<th><a href="
30f0: 66 6f 72 65 69 67 6e 6b 65 79 73 2e 68 74 6d 6c  foreignkeys.html
3100: 23 70 61 72 65 6e 74 63 68 69 6c 64 22 3e 50 61  #parentchild">Pa
3110: 72 65 6e 74 20 54 61 62 6c 65 3c 2f 61 3e 0a 72  rent Table</a>.r
3120: 65 66 65 72 65 6e 63 65 73 20 61 72 65 20 75 70  eferences are up
3130: 64 61 74 65 64 0a 3c 74 68 3e 53 51 4c 69 74 65  dated.<th>SQLite
3140: 20 76 65 72 73 69 6f 6e 0a 3c 74 72 3e 3c 74 64   version.<tr><td
3150: 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e   align="center">
3160: 4f 66 66 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  Off<td align="ce
3170: 6e 74 65 72 22 3e 4f 66 66 3c 74 64 20 61 6c 69  nter">Off<td ali
3180: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 4e 6f 3c 74  gn="center">No<t
3190: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
31a0: 3e 26 6c 74 3b 20 33 2e 32 36 2e 30 0a 3c 74 72  >&lt; 3.26.0.<tr
31b0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74  ><td align="cent
31c0: 65 72 22 3e 4f 66 66 3c 74 64 20 61 6c 69 67 6e  er">Off<td align
31d0: 3d 22 63 65 6e 74 65 72 22 3e 4f 66 66 3c 74 64  ="center">Off<td
31e0: 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e   align="center">
31f0: 59 65 73 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  Yes<td align="ce
3200: 6e 74 65 72 22 3e 26 67 74 3b 3d 20 33 2e 32 36  nter">&gt;= 3.26
3210: 2e 30 0a 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e  .0.<tr><td align
3220: 3d 22 63 65 6e 74 65 72 22 3e 4f 6e 3c 74 64 20  ="center">On<td 
3230: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 4f  align="center">O
3240: 66 66 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e  ff<td align="cen
3250: 74 65 72 22 3e 59 65 73 3c 74 64 20 61 6c 69 67  ter">Yes<td alig
3260: 6e 3d 22 63 65 6e 74 65 72 22 3e 61 6c 6c 0a 3c  n="center">all.<
3270: 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  tr><td align="ce
3280: 6e 74 65 72 22 3e 4f 66 66 3c 74 64 20 61 6c 69  nter">Off<td ali
3290: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 4f 6e 3c 74  gn="center">On<t
32a0: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
32b0: 3e 4e 6f 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  >No<td align="ce
32c0: 6e 74 65 72 22 3e 61 6c 6c 0a 3c 74 72 3e 3c 74  nter">all.<tr><t
32d0: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
32e0: 3e 4f 6e 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  >On<td align="ce
32f0: 6e 74 65 72 22 3e 4f 6e 3c 74 64 20 61 6c 69 67  nter">On<td alig
3300: 6e 3d 22 63 65 6e 74 65 72 22 3e 59 65 73 3c 74  n="center">Yes<t
3310: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
3320: 3e 61 6c 6c 0a 3c 2f 74 61 62 6c 65 3e 0a 3c 2f  >all.</table>.</
3330: 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 61 20  blockquote>..<a 
3340: 6e 61 6d 65 3d 22 61 6c 74 65 72 74 61 62 6d 76  name="altertabmv
3350: 63 6f 6c 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 41  col"></a>..<h3>A
3360: 4c 54 45 52 20 54 41 42 4c 45 20 52 45 4e 41 4d  LTER TABLE RENAM
3370: 45 20 43 4f 4c 55 4d 4e 3c 2f 68 33 3e 0a 0a 3c  E COLUMN</h3>..<
3380: 70 3e 20 54 68 65 20 52 45 4e 41 4d 45 20 43 4f  p> The RENAME CO
3390: 4c 55 4d 4e 20 54 4f 20 73 79 6e 74 61 78 20 63  LUMN TO syntax c
33a0: 68 61 6e 67 65 73 20 74 68 65 0a 3c 73 70 61 6e  hanges the.<span
33b0: 20 63 6c 61 73 73 3d 27 79 79 74 65 72 6d 27 3e   class='yyterm'>
33c0: 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 3c 2f 73 70 61  column-name</spa
33d0: 6e 3e 20 6f 66 20 74 61 62 6c 65 20 3c 73 70 61  n> of table <spa
33e0: 6e 20 63 6c 61 73 73 3d 27 79 79 74 65 72 6d 27  n class='yyterm'
33f0: 3e 74 61 62 6c 65 2d 6e 61 6d 65 3c 2f 73 70 61  >table-name</spa
3400: 6e 3e 0a 69 6e 74 6f 20 3c 73 70 61 6e 20 63 6c  n>.into <span cl
3410: 61 73 73 3d 27 79 79 74 65 72 6d 27 3e 6e 65 77  ass='yyterm'>new
3420: 2d 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 3c 2f 73 70  -column-name</sp
3430: 61 6e 3e 2e 20 20 54 68 65 20 63 6f 6c 75 6d 6e  an>.  The column
3440: 20 6e 61 6d 65 20 69 73 20 63 68 61 6e 67 65 64   name is changed
3450: 20 62 6f 74 68 0a 77 69 74 68 69 6e 20 74 68 65   both.within the
3460: 20 74 61 62 6c 65 20 64 65 66 69 6e 69 74 69 6f   table definitio
3470: 6e 20 69 74 73 65 6c 66 20 61 6e 64 20 61 6c 73  n itself and als
3480: 6f 20 77 69 74 68 69 6e 20 61 6c 6c 20 69 6e 64  o within all ind
3490: 65 78 65 73 2c 20 74 72 69 67 67 65 72 73 2c 0a  exes, triggers,.
34a0: 61 6e 64 20 76 69 65 77 73 20 74 68 61 74 20 72  and views that r
34b0: 65 66 65 72 65 6e 63 65 20 74 68 65 20 63 6f 6c  eference the col
34c0: 75 6d 6e 2e 20 20 49 66 20 74 68 65 20 63 6f 6c  umn.  If the col
34d0: 75 6d 6e 20 6e 61 6d 65 20 63 68 61 6e 67 65 20  umn name change 
34e0: 77 6f 75 6c 64 0a 72 65 73 75 6c 74 20 69 6e 20  would.result in 
34f0: 61 20 73 65 6d 61 6e 74 69 63 20 61 6d 62 69 67  a semantic ambig
3500: 75 69 74 79 20 69 6e 20 61 20 74 72 69 67 67 65  uity in a trigge
3510: 72 20 6f 72 20 76 69 65 77 2c 20 74 68 65 6e 20  r or view, then 
3520: 74 68 65 20 52 45 4e 41 4d 45 0a 43 4f 4c 55 4d  the RENAME.COLUM
3530: 4e 20 66 61 69 6c 73 20 77 69 74 68 20 61 6e 20  N fails with an 
3540: 65 72 72 6f 72 20 61 6e 64 20 6e 6f 20 63 68 61  error and no cha
3550: 6e 67 65 73 20 61 72 65 20 61 70 70 6c 69 65 64  nges are applied
3560: 2e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 61 6c 74 65  ...<a name="alte
3570: 72 74 61 62 61 64 64 63 6f 6c 22 3e 3c 2f 61 3e  rtabaddcol"></a>
3580: 0a 0a 3c 68 33 3e 41 4c 54 45 52 20 54 41 42 4c  ..<h3>ALTER TABL
3590: 45 20 41 44 44 20 43 4f 4c 55 4d 4e 3c 2f 68 33  E ADD COLUMN</h3
35a0: 3e 0a 0a 3c 70 3e 20 54 68 65 20 41 44 44 20 43  >..<p> The ADD C
35b0: 4f 4c 55 4d 4e 20 73 79 6e 74 61 78 0a 69 73 20  OLUMN syntax.is 
35c0: 75 73 65 64 20 74 6f 20 61 64 64 20 61 20 6e 65  used to add a ne
35d0: 77 20 63 6f 6c 75 6d 6e 20 74 6f 20 61 6e 20 65  w column to an e
35e0: 78 69 73 74 69 6e 67 20 74 61 62 6c 65 2e 0a 54  xisting table..T
35f0: 68 65 20 6e 65 77 20 63 6f 6c 75 6d 6e 20 69 73  he new column is
3600: 20 61 6c 77 61 79 73 20 61 70 70 65 6e 64 65 64   always appended
3610: 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74   to the end of t
3620: 68 65 20 6c 69 73 74 20 6f 66 20 65 78 69 73 74  he list of exist
3630: 69 6e 67 20 63 6f 6c 75 6d 6e 73 2e 0a 54 68 65  ing columns..The
3640: 20 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78   <a href="syntax
3650: 2f 63 6f 6c 75 6d 6e 2d 64 65 66 2e 68 74 6d 6c  /column-def.html
3660: 22 3e 63 6f 6c 75 6d 6e 2d 64 65 66 3c 2f 61 3e  ">column-def</a>
3670: 20 72 75 6c 65 20 64 65 66 69 6e 65 73 20 74 68   rule defines th
3680: 65 20 63 68 61 72 61 63 74 65 72 69 73 74 69 63  e characteristic
3690: 73 20 6f 66 20 74 68 65 20 6e 65 77 20 63 6f 6c  s of the new col
36a0: 75 6d 6e 2e 0a 54 68 65 20 6e 65 77 20 63 6f 6c  umn..The new col
36b0: 75 6d 6e 20 6d 61 79 20 74 61 6b 65 20 61 6e 79  umn may take any
36c0: 20 6f 66 20 74 68 65 20 66 6f 72 6d 73 20 70 65   of the forms pe
36d0: 72 6d 69 73 73 69 62 6c 65 20 69 6e 20 61 20 3c  rmissible in a <
36e0: 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 63 72 65  a href="lang_cre
36f0: 61 74 65 74 61 62 6c 65 2e 68 74 6d 6c 22 3e 43  atetable.html">C
3700: 52 45 41 54 45 20 54 41 42 4c 45 3c 2f 61 3e 0a  REATE TABLE</a>.
3710: 73 74 61 74 65 6d 65 6e 74 2c 20 77 69 74 68 20  statement, with 
3720: 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 65  the following re
3730: 73 74 72 69 63 74 69 6f 6e 73 3a 0a 3c 75 6c 3e  strictions:.<ul>
3740: 0a 3c 6c 69 3e 54 68 65 20 63 6f 6c 75 6d 6e 20  .<li>The column 
3750: 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 61 20 50  may not have a P
3760: 52 49 4d 41 52 59 20 4b 45 59 20 6f 72 20 55 4e  RIMARY KEY or UN
3770: 49 51 55 45 20 63 6f 6e 73 74 72 61 69 6e 74 2e  IQUE constraint.
3780: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f  </li>.<li>The co
3790: 6c 75 6d 6e 20 6d 61 79 20 6e 6f 74 20 68 61 76  lumn may not hav
37a0: 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75  e a default valu
37b0: 65 20 6f 66 20 43 55 52 52 45 4e 54 5f 54 49 4d  e of CURRENT_TIM
37c0: 45 2c 20 43 55 52 52 45 4e 54 5f 44 41 54 45 2c  E, CURRENT_DATE,
37d0: 20 0a 20 20 20 20 43 55 52 52 45 4e 54 5f 54 49   .    CURRENT_TI
37e0: 4d 45 53 54 41 4d 50 2c 20 6f 72 20 61 6e 20 65  MESTAMP, or an e
37f0: 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 70 61 72  xpression in par
3800: 65 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  entheses.</li>.<
3810: 6c 69 3e 49 66 20 61 20 4e 4f 54 20 4e 55 4c 4c  li>If a NOT NULL
3820: 20 63 6f 6e 73 74 72 61 69 6e 74 20 69 73 20 73   constraint is s
3830: 70 65 63 69 66 69 65 64 2c 20 74 68 65 6e 20 74  pecified, then t
3840: 68 65 20 63 6f 6c 75 6d 6e 20 6d 75 73 74 20 68  he column must h
3850: 61 76 65 20 61 0a 20 20 20 20 64 65 66 61 75 6c  ave a.    defaul
3860: 74 20 76 61 6c 75 65 20 6f 74 68 65 72 20 74 68  t value other th
3870: 61 6e 20 4e 55 4c 4c 2e 0a 3c 6c 69 3e 49 66 20  an NULL..<li>If 
3880: 3c 61 20 68 72 65 66 3d 22 66 6f 72 65 69 67 6e  <a href="foreign
3890: 6b 65 79 73 2e 68 74 6d 6c 22 3e 66 6f 72 65 69  keys.html">forei
38a0: 67 6e 20 6b 65 79 20 63 6f 6e 73 74 72 61 69 6e  gn key constrain
38b0: 74 73 3c 2f 61 3e 20 61 72 65 20 3c 61 20 68 72  ts</a> are <a hr
38c0: 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23  ef="pragma.html#
38d0: 70 72 61 67 6d 61 5f 66 6f 72 65 69 67 6e 5f 6b  pragma_foreign_k
38e0: 65 79 73 22 3e 65 6e 61 62 6c 65 64 3c 2f 61 3e  eys">enabled</a>
38f0: 20 61 6e 64 0a 20 20 20 20 61 20 63 6f 6c 75 6d   and.    a colum
3900: 6e 20 77 69 74 68 20 61 20 3c 61 20 68 72 65 66  n with a <a href
3910: 3d 22 73 79 6e 74 61 78 2f 66 6f 72 65 69 67 6e  ="syntax/foreign
3920: 2d 6b 65 79 2d 63 6c 61 75 73 65 2e 68 74 6d 6c  -key-clause.html
3930: 22 3e 52 45 46 45 52 45 4e 43 45 53 20 63 6c 61  ">REFERENCES cla
3940: 75 73 65 3c 2f 61 3e 0a 20 20 20 20 69 73 20 61  use</a>.    is a
3950: 64 64 65 64 2c 20 74 68 65 20 63 6f 6c 75 6d 6e  dded, the column
3960: 20 6d 75 73 74 20 68 61 76 65 20 61 20 64 65 66   must have a def
3970: 61 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 4e 55  ault value of NU
3980: 4c 4c 2e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e 4e 6f  LL..</ul>..<p>No
3990: 74 65 20 61 6c 73 6f 20 74 68 61 74 20 77 68 65  te also that whe
39a0: 6e 20 61 64 64 69 6e 67 20 61 20 3c 61 20 68 72  n adding a <a hr
39b0: 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61 74 65 74  ef="lang_createt
39c0: 61 62 6c 65 2e 68 74 6d 6c 23 63 6b 63 6f 6e 73  able.html#ckcons
39d0: 74 22 3e 43 48 45 43 4b 20 63 6f 6e 73 74 72 61  t">CHECK constra
39e0: 69 6e 74 3c 2f 61 3e 2c 20 74 68 65 20 43 48 45  int</a>, the CHE
39f0: 43 4b 20 63 6f 6e 73 74 72 61 69 6e 74 0a 69 73  CK constraint.is
3a00: 20 6e 6f 74 20 74 65 73 74 65 64 20 61 67 61 69   not tested agai
3a10: 6e 73 74 20 70 72 65 65 78 69 73 74 69 6e 67 20  nst preexisting 
3a20: 72 6f 77 73 20 6f 66 20 74 68 65 20 74 61 62 6c  rows of the tabl
3a30: 65 2e 0a 54 68 69 73 20 63 61 6e 20 72 65 73 75  e..This can resu
3a40: 6c 74 20 69 6e 20 61 20 74 61 62 6c 65 20 74 68  lt in a table th
3a50: 61 74 20 63 6f 6e 74 61 69 6e 73 20 64 61 74 61  at contains data
3a60: 20 74 68 61 74 0a 69 73 20 69 6e 20 76 69 6f 6c   that.is in viol
3a70: 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 43 48 45  ation of the CHE
3a80: 43 4b 20 63 6f 6e 73 74 72 61 69 6e 74 2e 20 20  CK constraint.  
3a90: 46 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73 20  Future versions 
3aa0: 6f 66 20 53 51 4c 69 74 65 20 6d 69 67 68 74 0a  of SQLite might.
3ab0: 63 68 61 6e 67 65 20 74 6f 20 76 61 6c 69 64 61  change to valida
3ac0: 74 65 20 43 48 45 43 4b 20 63 6f 6e 73 74 72 61  te CHECK constra
3ad0: 69 6e 74 73 20 61 73 20 74 68 65 79 20 61 72 65  ints as they are
3ae0: 20 61 64 64 65 64 2e 3c 2f 70 3e 0a 0a 3c 70 3e   added.</p>..<p>
3af0: 54 68 65 20 41 4c 54 45 52 20 54 41 42 4c 45 20  The ALTER TABLE 
3b00: 63 6f 6d 6d 61 6e 64 20 77 6f 72 6b 73 20 62 79  command works by
3b10: 20 6d 6f 64 69 66 79 69 6e 67 20 74 68 65 20 53   modifying the S
3b20: 51 4c 20 74 65 78 74 20 6f 66 20 74 68 65 20 73  QL text of the s
3b30: 63 68 65 6d 61 0a 73 74 6f 72 65 64 20 69 6e 20  chema.stored in 
3b40: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 66 69 6c  the <a href="fil
3b50: 65 66 6f 72 6d 61 74 32 2e 68 74 6d 6c 23 73 71  eformat2.html#sq
3b60: 6c 69 74 65 5f 6d 61 73 74 65 72 22 3e 73 71 6c  lite_master">sql
3b70: 69 74 65 5f 6d 61 73 74 65 72 20 74 61 62 6c 65  ite_master table
3b80: 3c 2f 61 3e 2e 0a 4e 6f 20 63 68 61 6e 67 65 73  </a>..No changes
3b90: 20 61 72 65 20 6d 61 64 65 20 74 6f 20 74 61 62   are made to tab
3ba0: 6c 65 20 63 6f 6e 74 65 6e 74 2e 0a 42 65 63 61  le content..Beca
3bb0: 75 73 65 20 6f 66 20 74 68 69 73 2c 0a 74 68 65  use of this,.the
3bc0: 20 65 78 65 63 75 74 69 6f 6e 20 74 69 6d 65 20   execution time 
3bd0: 6f 66 20 74 68 65 20 41 4c 54 45 52 20 54 41 42  of the ALTER TAB
3be0: 4c 45 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 6e  LE command is in
3bf0: 64 65 70 65 6e 64 65 6e 74 20 6f 66 0a 74 68 65  dependent of.the
3c00: 20 61 6d 6f 75 6e 74 20 6f 66 20 64 61 74 61 20   amount of data 
3c10: 69 6e 20 74 68 65 20 74 61 62 6c 65 2e 20 20 54  in the table.  T
3c20: 68 65 20 41 4c 54 45 52 20 54 41 42 4c 45 20 63  he ALTER TABLE c
3c30: 6f 6d 6d 61 6e 64 20 72 75 6e 73 20 61 73 20 71  ommand runs as q
3c40: 75 69 63 6b 6c 79 0a 6f 6e 20 61 20 74 61 62 6c  uickly.on a tabl
3c50: 65 20 77 69 74 68 20 31 30 20 6d 69 6c 6c 69 6f  e with 10 millio
3c60: 6e 20 72 6f 77 73 20 61 73 20 69 74 20 64 6f 65  n rows as it doe
3c70: 73 20 6f 6e 20 61 20 74 61 62 6c 65 20 77 69 74  s on a table wit
3c80: 68 20 31 20 72 6f 77 2e 0a 3c 2f 70 3e 0a 0a 3c  h 1 row..</p>..<
3c90: 70 3e 41 66 74 65 72 20 41 44 44 20 43 4f 4c 55  p>After ADD COLU
3ca0: 4d 4e 20 68 61 73 20 62 65 65 6e 20 72 75 6e 20  MN has been run 
3cb0: 6f 6e 20 61 20 64 61 74 61 62 61 73 65 2c 20 74  on a database, t
3cc0: 68 61 74 20 64 61 74 61 62 61 73 65 20 77 69 6c  hat database wil
3cd0: 6c 20 6e 6f 74 0a 62 65 20 72 65 61 64 61 62 6c  l not.be readabl
3ce0: 65 20 62 79 20 53 51 4c 69 74 65 20 76 65 72 73  e by SQLite vers
3cf0: 69 6f 6e 20 33 2e 31 2e 33 20 28 32 30 30 35 2d  ion 3.1.3 (2005-
3d00: 30 32 2d 32 30 29 20 61 6e 64 20 65 61 72 6c 69  02-20) and earli
3d10: 65 72 2e 3c 2f 70 3e 0a 0a 3c 61 20 6e 61 6d 65  er.</p>..<a name
3d20: 3d 22 6f 74 68 65 72 61 6c 74 65 72 22 3e 3c 2f  ="otheralter"></
3d30: 61 3e 0a 0a 3c 68 33 3e 4d 61 6b 69 6e 67 20 4f  a>..<h3>Making O
3d40: 74 68 65 72 20 4b 69 6e 64 73 20 4f 66 20 54 61  ther Kinds Of Ta
3d50: 62 6c 65 20 53 63 68 65 6d 61 20 43 68 61 6e 67  ble Schema Chang
3d60: 65 73 3c 2f 68 33 3e 0a 0a 3c 70 3e 20 54 68 65  es</h3>..<p> The
3d70: 20 6f 6e 6c 79 20 73 63 68 65 6d 61 20 61 6c 74   only schema alt
3d80: 65 72 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 64  ering commands d
3d90: 69 72 65 63 74 6c 79 20 73 75 70 70 6f 72 74 65  irectly supporte
3da0: 64 20 62 79 20 53 51 4c 69 74 65 20 61 72 65 20  d by SQLite are 
3db0: 74 68 65 0a 22 3c 61 20 68 72 65 66 3d 22 6c 61  the."<a href="la
3dc0: 6e 67 5f 61 6c 74 65 72 74 61 62 6c 65 2e 68 74  ng_altertable.ht
3dd0: 6d 6c 23 61 6c 74 65 72 74 61 62 72 65 6e 61 6d  ml#altertabrenam
3de0: 65 22 3e 72 65 6e 61 6d 65 20 74 61 62 6c 65 3c  e">rename table<
3df0: 2f 61 3e 22 2c 20 22 3c 61 20 68 72 65 66 3d 22  /a>", "<a href="
3e00: 6c 61 6e 67 5f 61 6c 74 65 72 74 61 62 6c 65 2e  lang_altertable.
3e10: 68 74 6d 6c 23 61 6c 74 65 72 74 61 62 6d 76 63  html#altertabmvc
3e20: 6f 6c 22 3e 72 65 6e 61 6d 65 20 63 6f 6c 75 6d  ol">rename colum
3e30: 6e 3c 2f 61 3e 22 2c 20 61 6e 64 20 22 3c 61 20  n</a>", and "<a 
3e40: 68 72 65 66 3d 22 6c 61 6e 67 5f 61 6c 74 65 72  href="lang_alter
3e50: 74 61 62 6c 65 2e 68 74 6d 6c 23 61 6c 74 65 72  table.html#alter
3e60: 74 61 62 61 64 64 63 6f 6c 22 3e 61 64 64 20 63  tabaddcol">add c
3e70: 6f 6c 75 6d 6e 3c 2f 61 3e 22 20 63 6f 6d 6d 61  olumn</a>" comma
3e80: 6e 64 73 20 73 68 6f 77 6e 20 61 62 6f 76 65 2e  nds shown above.
3e90: 20 20 0a 48 6f 77 65 76 65 72 2c 20 61 70 70 6c    .However, appl
3ea0: 69 63 61 74 69 6f 6e 73 0a 63 61 6e 20 6d 61 6b  ications.can mak
3eb0: 65 20 6f 74 68 65 72 20 61 72 62 69 74 72 61 72  e other arbitrar
3ec0: 79 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65  y changes to the
3ed0: 20 66 6f 72 6d 61 74 20 6f 66 20 61 20 74 61 62   format of a tab
3ee0: 6c 65 20 75 73 69 6e 67 20 61 20 73 69 6d 70 6c  le using a simpl
3ef0: 65 0a 73 65 71 75 65 6e 63 65 20 6f 66 20 6f 70  e.sequence of op
3f00: 65 72 61 74 69 6f 6e 73 2e 0a 54 68 65 20 73 74  erations..The st
3f10: 65 70 73 20 74 6f 20 6d 61 6b 65 20 61 72 62 69  eps to make arbi
3f20: 74 72 61 72 79 20 63 68 61 6e 67 65 73 20 74 6f  trary changes to
3f30: 20 74 68 65 20 73 63 68 65 6d 61 20 64 65 73 69   the schema desi
3f40: 67 6e 20 6f 66 20 73 6f 6d 65 20 74 61 62 6c 65  gn of some table
3f50: 20 58 0a 61 72 65 20 61 73 20 66 6f 6c 6c 6f 77   X.are as follow
3f60: 73 3a 0a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 3c 70 3e  s:..<ol>.<li><p>
3f70: 0a 49 66 20 66 6f 72 65 69 67 6e 20 6b 65 79 20  .If foreign key 
3f80: 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20  constraints are 
3f90: 65 6e 61 62 6c 65 64 2c 20 64 69 73 61 62 6c 65  enabled, disable
3fa0: 20 74 68 65 6d 20 75 73 69 6e 67 20 3c 61 20 68   them using <a h
3fb0: 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c  ref="pragma.html
3fc0: 23 70 72 61 67 6d 61 5f 66 6f 72 65 69 67 6e 5f  #pragma_foreign_
3fd0: 6b 65 79 73 22 3e 50 52 41 47 4d 41 20 66 6f 72  keys">PRAGMA for
3fe0: 65 69 67 6e 5f 6b 65 79 73 3d 4f 46 46 3c 2f 61  eign_keys=OFF</a
3ff0: 3e 2e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 53 74 61 72  >...<li><p>.Star
4000: 74 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e  t a transaction.
4010: 0a 0a 3c 6c 69 3e 3c 70 3e 0a 52 65 6d 65 6d 62  ..<li><p>.Rememb
4020: 65 72 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  er the format of
4030: 20 61 6c 6c 20 69 6e 64 65 78 65 73 2c 20 74 72   all indexes, tr
4040: 69 67 67 65 72 73 2c 20 61 6e 64 20 76 69 65 77  iggers, and view
4050: 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74  s associated wit
4060: 68 20 74 61 62 6c 65 20 58 2e 0a 54 68 69 73 20  h table X..This 
4070: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 69 6c 6c  information will
4080: 20 62 65 20 6e 65 65 64 65 64 20 69 6e 20 73 74   be needed in st
4090: 65 70 20 38 20 62 65 6c 6f 77 2e 20 20 4f 6e 65  ep 8 below.  One
40a0: 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 73 20   way to do this 
40b0: 69 73 0a 74 6f 20 72 75 6e 20 61 20 71 75 65 72  is.to run a quer
40c0: 79 20 6c 69 6b 65 20 74 68 65 20 66 6f 6c 6c 6f  y like the follo
40d0: 77 69 6e 67 3a 0a 53 45 4c 45 43 54 20 74 79 70  wing:.SELECT typ
40e0: 65 2c 20 73 71 6c 20 46 52 4f 4d 20 73 71 6c 69  e, sql FROM sqli
40f0: 74 65 5f 6d 61 73 74 65 72 20 57 48 45 52 45 20  te_master WHERE 
4100: 74 62 6c 5f 6e 61 6d 65 3d 27 58 27 2e 0a 0a 3c  tbl_name='X'...<
4110: 6c 69 3e 3c 70 3e 0a 55 73 65 20 3c 61 20 68 72  li><p>.Use <a hr
4120: 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61 74 65 74  ef="lang_createt
4130: 61 62 6c 65 2e 68 74 6d 6c 22 3e 43 52 45 41 54  able.html">CREAT
4140: 45 20 54 41 42 4c 45 3c 2f 61 3e 20 74 6f 20 63  E TABLE</a> to c
4150: 6f 6e 73 74 72 75 63 74 20 61 20 6e 65 77 20 74  onstruct a new t
4160: 61 62 6c 65 20 22 6e 65 77 5f 58 22 20 74 68 61  able "new_X" tha
4170: 74 20 69 73 20 69 6e 20 74 68 65 20 64 65 73 69  t is in the desi
4180: 72 65 64 0a 72 65 76 69 73 65 64 20 66 6f 72 6d  red.revised form
4190: 61 74 20 6f 66 20 74 61 62 6c 65 20 58 2e 20 20  at of table X.  
41a0: 4d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74  Make sure that t
41b0: 68 65 20 6e 61 6d 65 20 22 6e 65 77 5f 58 22 20  he name "new_X" 
41c0: 64 6f 65 73 20 6e 6f 74 20 63 6f 6c 6c 69 64 65  does not collide
41d0: 0a 77 69 74 68 20 61 6e 79 20 65 78 69 73 74 69  .with any existi
41e0: 6e 67 20 74 61 62 6c 65 20 6e 61 6d 65 2c 20 6f  ng table name, o
41f0: 66 20 63 6f 75 72 73 65 2e 0a 0a 3c 6c 69 3e 3c  f course...<li><
4200: 70 3e 0a 54 72 61 6e 73 66 65 72 20 63 6f 6e 74  p>.Transfer cont
4210: 65 6e 74 20 66 72 6f 6d 20 58 20 69 6e 74 6f 20  ent from X into 
4220: 6e 65 77 5f 58 20 75 73 69 6e 67 20 61 20 73 74  new_X using a st
4230: 61 74 65 6d 65 6e 74 0a 6c 69 6b 65 3a 20 49 4e  atement.like: IN
4240: 53 45 52 54 20 49 4e 54 4f 20 6e 65 77 5f 58 20  SERT INTO new_X 
4250: 53 45 4c 45 43 54 20 2e 2e 2e 20 46 52 4f 4d 20  SELECT ... FROM 
4260: 58 2e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 44 72 6f 70  X...<li><p>.Drop
4270: 20 74 68 65 20 6f 6c 64 20 74 61 62 6c 65 20 58   the old table X
4280: 3a 20 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67  :  <a href="lang
4290: 5f 64 72 6f 70 74 61 62 6c 65 2e 68 74 6d 6c 22  _droptable.html"
42a0: 3e 44 52 4f 50 20 54 41 42 4c 45 20 58 3c 2f 61  >DROP TABLE X</a
42b0: 3e 2e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 43 68 61 6e  >...<li><p>.Chan
42c0: 67 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 6e  ge the name of n
42d0: 65 77 5f 58 20 74 6f 20 58 20 75 73 69 6e 67 3a  ew_X to X using:
42e0: 20 41 4c 54 45 52 20 54 41 42 4c 45 20 6e 65 77   ALTER TABLE new
42f0: 5f 58 20 52 45 4e 41 4d 45 20 54 4f 20 58 2e 0a  _X RENAME TO X..
4300: 0a 3c 6c 69 3e 3c 70 3e 0a 55 73 65 20 3c 61 20  .<li><p>.Use <a 
4310: 68 72 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61 74  href="lang_creat
4320: 65 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 43 52 45  eindex.html">CRE
4330: 41 54 45 20 49 4e 44 45 58 3c 2f 61 3e 2c 20 3c  ATE INDEX</a>, <
4340: 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 63 72 65  a href="lang_cre
4350: 61 74 65 74 72 69 67 67 65 72 2e 68 74 6d 6c 22  atetrigger.html"
4360: 3e 43 52 45 41 54 45 20 54 52 49 47 47 45 52 3c  >CREATE TRIGGER<
4370: 2f 61 3e 2c 20 61 6e 64 20 3c 61 20 68 72 65 66  /a>, and <a href
4380: 3d 22 6c 61 6e 67 5f 63 72 65 61 74 65 76 69 65  ="lang_createvie
4390: 77 2e 68 74 6d 6c 22 3e 43 52 45 41 54 45 20 56  w.html">CREATE V
43a0: 49 45 57 3c 2f 61 3e 0a 74 6f 20 72 65 63 6f 6e  IEW</a>.to recon
43b0: 73 74 72 75 63 74 20 69 6e 64 65 78 65 73 2c 20  struct indexes, 
43c0: 74 72 69 67 67 65 72 73 2c 20 61 6e 64 20 76 69  triggers, and vi
43d0: 65 77 73 0a 61 73 73 6f 63 69 61 74 65 64 20 77  ews.associated w
43e0: 69 74 68 20 74 61 62 6c 65 20 58 2e 20 20 50 65  ith table X.  Pe
43f0: 72 68 61 70 73 20 75 73 65 20 74 68 65 20 6f 6c  rhaps use the ol
4400: 64 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 65 20  d format of the 
4410: 74 72 69 67 67 65 72 73 2c 0a 69 6e 64 65 78 65  triggers,.indexe
4420: 73 2c 20 61 6e 64 20 76 69 65 77 73 20 73 61 76  s, and views sav
4430: 65 64 20 66 72 6f 6d 20 73 74 65 70 20 33 20 61  ed from step 3 a
4440: 62 6f 76 65 20 61 73 20 61 20 67 75 69 64 65 2c  bove as a guide,
4450: 20 6d 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 0a   making changes.
4460: 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 20 66  as appropriate f
4470: 6f 72 20 74 68 65 20 61 6c 74 65 72 61 74 69 6f  or the alteratio
4480: 6e 2e 0a 0a 3c 6c 69 3e 3c 70 3e 49 66 20 61 6e  n...<li><p>If an
4490: 79 20 76 69 65 77 73 20 72 65 66 65 72 20 74 6f  y views refer to
44a0: 20 74 61 62 6c 65 20 58 20 69 6e 20 61 20 77 61   table X in a wa
44b0: 79 20 74 68 61 74 20 69 73 20 61 66 66 65 63 74  y that is affect
44c0: 65 64 20 62 79 20 74 68 65 0a 73 63 68 65 6d 61  ed by the.schema
44d0: 20 63 68 61 6e 67 65 2c 20 74 68 65 6e 20 64 72   change, then dr
44e0: 6f 70 20 74 68 6f 73 65 20 76 69 65 77 73 20 75  op those views u
44f0: 73 69 6e 67 20 3c 61 20 68 72 65 66 3d 22 6c 61  sing <a href="la
4500: 6e 67 5f 64 72 6f 70 76 69 65 77 2e 68 74 6d 6c  ng_dropview.html
4510: 22 3e 44 52 4f 50 20 56 49 45 57 3c 2f 61 3e 20  ">DROP VIEW</a> 
4520: 61 6e 64 20 72 65 63 72 65 61 74 65 20 74 68 65  and recreate the
4530: 6d 0a 77 69 74 68 20 77 68 61 74 65 76 65 72 20  m.with whatever 
4540: 63 68 61 6e 67 65 73 20 61 72 65 20 6e 65 63 65  changes are nece
4550: 73 73 61 72 79 20 74 6f 20 61 63 63 6f 6d 6d 6f  ssary to accommo
4560: 64 61 74 65 20 74 68 65 20 73 63 68 65 6d 61 20  date the schema 
4570: 63 68 61 6e 67 65 0a 75 73 69 6e 67 20 3c 61 20  change.using <a 
4580: 68 72 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61 74  href="lang_creat
4590: 65 76 69 65 77 2e 68 74 6d 6c 22 3e 43 52 45 41  eview.html">CREA
45a0: 54 45 20 56 49 45 57 3c 2f 61 3e 2e 0a 0a 3c 6c  TE VIEW</a>...<l
45b0: 69 3e 3c 70 3e 0a 49 66 20 66 6f 72 65 69 67 6e  i><p>.If foreign
45c0: 20 6b 65 79 20 63 6f 6e 73 74 72 61 69 6e 74 73   key constraints
45d0: 20 77 65 72 65 20 6f 72 69 67 69 6e 61 6c 6c 79   were originally
45e0: 20 65 6e 61 62 6c 65 64 0a 74 68 65 6e 20 72 75   enabled.then ru
45f0: 6e 20 3c 61 20 68 72 65 66 3d 22 70 72 61 67 6d  n <a href="pragm
4600: 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 66 6f  a.html#pragma_fo
4610: 72 65 69 67 6e 5f 6b 65 79 5f 63 68 65 63 6b 22  reign_key_check"
4620: 3e 50 52 41 47 4d 41 20 66 6f 72 65 69 67 6e 5f  >PRAGMA foreign_
4630: 6b 65 79 5f 63 68 65 63 6b 3c 2f 61 3e 20 74 6f  key_check</a> to
4640: 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68 65   verify that the
4650: 20 73 63 68 65 6d 61 0a 63 68 61 6e 67 65 20 64   schema.change d
4660: 69 64 20 6e 6f 74 20 62 72 65 61 6b 20 61 6e 79  id not break any
4670: 20 66 6f 72 65 69 67 6e 20 6b 65 79 20 63 6f 6e   foreign key con
4680: 73 74 72 61 69 6e 74 73 2e 0a 0a 0a 3c 6c 69 3e  straints....<li>
4690: 3c 70 3e 0a 43 6f 6d 6d 69 74 20 74 68 65 20 74  <p>.Commit the t
46a0: 72 61 6e 73 61 63 74 69 6f 6e 20 73 74 61 72 74  ransaction start
46b0: 65 64 20 69 6e 20 73 74 65 70 20 32 2e 0a 0a 3c  ed in step 2...<
46c0: 6c 69 3e 3c 70 3e 0a 49 66 20 66 6f 72 65 69 67  li><p>.If foreig
46d0: 6e 20 6b 65 79 73 20 63 6f 6e 73 74 72 61 69 6e  n keys constrain
46e0: 74 73 20 77 65 72 65 20 6f 72 69 67 69 6e 61 6c  ts were original
46f0: 6c 79 20 65 6e 61 62 6c 65 64 2c 20 72 65 65 6e  ly enabled, reen
4700: 61 62 6c 65 20 74 68 65 6d 20 6e 6f 77 2e 0a 3c  able them now..<
4710: 2f 6f 6c 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 63  /ol>..<a name="c
4720: 61 75 74 69 6f 6e 22 3e 3c 2f 61 3e 0a 0a 3c 70  aution"></a>..<p
4730: 3e 0a 3c 62 3e 43 61 75 74 69 6f 6e 3a 3c 2f 62  >.<b>Caution:</b
4740: 3e 0a 54 61 6b 65 20 63 61 72 65 20 74 6f 20 66  >.Take care to f
4750: 6f 6c 6c 6f 77 20 74 68 65 20 70 72 6f 63 65 64  ollow the proced
4760: 75 72 65 20 61 62 6f 76 65 20 70 72 65 63 69 73  ure above precis
4770: 65 6c 79 2e 20 20 54 68 65 20 62 6f 78 65 73 20  ely.  The boxes 
4780: 62 65 6c 6f 77 0a 73 75 6d 6d 61 72 69 7a 65 20  below.summarize 
4790: 74 77 6f 20 70 72 6f 63 65 64 75 72 65 73 20 66  two procedures f
47a0: 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 74  or modifying a t
47b0: 61 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 2e  able definition.
47c0: 20 20 41 74 20 66 69 72 73 74 0a 67 6c 61 6e 63    At first.glanc
47d0: 65 2c 20 74 68 65 79 20 62 6f 74 68 20 61 70 70  e, they both app
47e0: 65 61 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73  ear to accomplis
47f0: 68 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67  h the same thing
4800: 2e 20 20 48 6f 77 65 76 65 72 2c 20 74 68 65 0a  .  However, the.
4810: 70 72 6f 63 65 64 75 72 65 20 6f 6e 20 74 68 65  procedure on the
4820: 20 72 69 67 68 74 20 64 6f 65 73 20 6e 6f 74 20   right does not 
4830: 61 6c 77 61 79 73 20 77 6f 72 6b 2c 20 65 73 70  always work, esp
4840: 65 63 69 61 6c 6c 79 20 77 69 74 68 20 74 68 65  ecially with the
4850: 0a 65 6e 68 61 6e 63 65 64 20 3c 61 20 68 72 65  .enhanced <a hre
4860: 66 3d 22 6c 61 6e 67 5f 61 6c 74 65 72 74 61 62  f="lang_altertab
4870: 6c 65 2e 68 74 6d 6c 23 61 6c 74 65 72 74 61 62  le.html#altertab
4880: 72 65 6e 61 6d 65 22 3e 72 65 6e 61 6d 65 20 74  rename">rename t
4890: 61 62 6c 65 3c 2f 61 3e 20 63 61 70 61 62 69 6c  able</a> capabil
48a0: 69 74 69 65 73 20 61 64 64 65 64 20 62 79 20 76  ities added by v
48b0: 65 72 73 69 6f 6e 73 20 33 2e 32 35 2e 30 20 61  ersions 3.25.0 a
48c0: 6e 64 0a 33 2e 32 36 2e 30 2e 20 20 49 6e 20 74  nd.3.26.0.  In t
48d0: 68 65 20 70 72 6f 63 65 64 75 72 65 20 6f 6e 20  he procedure on 
48e0: 74 68 65 20 72 69 67 68 74 2c 20 74 68 65 20 69  the right, the i
48f0: 6e 69 74 69 61 6c 20 72 65 6e 61 6d 65 20 6f 66  nitial rename of
4900: 20 74 68 65 0a 74 61 62 6c 65 20 74 6f 20 61 20   the.table to a 
4910: 74 65 6d 70 6f 72 61 72 79 20 6e 61 6d 65 20 6d  temporary name m
4920: 69 67 68 74 20 63 6f 72 72 75 70 74 20 72 65 66  ight corrupt ref
4930: 65 72 65 6e 63 65 73 20 74 6f 20 74 68 61 74 20  erences to that 
4940: 74 61 62 6c 65 20 69 6e 0a 74 72 69 67 67 65 72  table in.trigger
4950: 73 2c 20 76 69 65 77 73 2c 20 61 6e 64 20 66 6f  s, views, and fo
4960: 72 65 69 67 6e 20 6b 65 79 20 63 6f 6e 73 74 72  reign key constr
4970: 61 69 6e 74 73 2e 20 20 54 68 65 20 73 61 66 65  aints.  The safe
4980: 20 70 72 6f 63 65 64 75 72 65 20 6f 6e 0a 74 68   procedure on.th
4990: 65 20 6c 65 66 74 20 63 6f 6e 73 74 72 75 63 74  e left construct
49a0: 73 20 74 68 65 20 72 65 76 69 73 65 64 20 74 61  s the revised ta
49b0: 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 75  ble definition u
49c0: 73 69 6e 67 20 61 20 6e 65 77 20 74 65 6d 70 6f  sing a new tempo
49d0: 72 61 72 79 0a 6e 61 6d 65 2c 20 74 68 65 6e 20  rary.name, then 
49e0: 72 65 6e 61 6d 65 73 20 74 68 65 20 74 61 62 6c  renames the tabl
49f0: 65 20 69 6e 74 6f 20 69 74 73 20 66 69 6e 61 6c  e into its final
4a00: 20 6e 61 6d 65 2c 20 77 68 69 63 68 20 64 6f 65   name, which doe
4a10: 73 20 6e 6f 74 20 62 72 65 61 6b 0a 6c 69 6e 6b  s not break.link
4a20: 73 2e 0a 0a 3c 63 65 6e 74 65 72 3e 0a 3c 74 61  s...<center>.<ta
4a30: 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20 63  ble border="1" c
4a40: 65 6c 6c 70 61 64 64 69 6e 67 3d 22 31 30 22 20  ellpadding="10" 
4a50: 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 30 22 3e  cellspacing="0">
4a60: 0a 3c 74 72 3e 0a 3c 74 64 20 76 61 6c 69 67 6e  .<tr>.<td valign
4a70: 3d 22 74 6f 70 22 3e 0a 3c 6f 6c 3e 0a 3c 6c 69  ="top">.<ol>.<li
4a80: 3e 43 72 65 61 74 65 20 6e 65 77 20 74 61 62 6c  >Create new tabl
4a90: 65 0a 3c 6c 69 3e 43 6f 70 79 20 64 61 74 61 0a  e.<li>Copy data.
4aa0: 3c 6c 69 3e 44 72 6f 70 20 6f 6c 64 20 74 61 62  <li>Drop old tab
4ab0: 6c 65 0a 3c 6c 69 3e 52 65 6e 61 6d 65 20 6e 65  le.<li>Rename ne
4ac0: 77 20 69 6e 74 6f 20 6f 6c 64 0a 3c 2f 6f 6c 3e  w into old.</ol>
4ad0: 0a 3c 74 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70  .<td valign="top
4ae0: 22 3e 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 52 65 6e 61  ">.<ol>.<li>Rena
4af0: 6d 65 20 6f 6c 64 20 74 61 62 6c 65 0a 3c 6c 69  me old table.<li
4b00: 3e 43 72 65 61 74 65 20 6e 65 77 20 74 61 62 6c  >Create new tabl
4b10: 65 0a 3c 6c 69 3e 43 6f 70 79 20 64 61 74 61 0a  e.<li>Copy data.
4b20: 3c 6c 69 3e 44 72 6f 70 20 6f 6c 64 20 74 61 62  <li>Drop old tab
4b30: 6c 65 0a 3c 2f 6f 6c 3e 0a 3c 74 72 3e 0a 3c 74  le.</ol>.<tr>.<t
4b40: 68 3e 26 75 61 72 72 3b 3c 62 72 3e 43 6f 72 72  h>&uarr;<br>Corr
4b50: 65 63 74 0a 3c 74 68 3e 26 75 61 72 72 3b 3c 62  ect.<th>&uarr;<b
4b60: 72 3e 49 6e 63 6f 72 72 65 63 74 0a 3c 2f 74 61  r>Incorrect.</ta
4b70: 62 6c 65 3e 0a 3c 2f 63 65 6e 74 65 72 3e 0a 0a  ble>.</center>..
4b80: 3c 70 3e 54 68 65 20 31 32 2d 73 74 65 70 20 3c  <p>The 12-step <
4b90: 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 61 6c 74  a href="lang_alt
4ba0: 65 72 74 61 62 6c 65 2e 68 74 6d 6c 23 6f 74 68  ertable.html#oth
4bb0: 65 72 61 6c 74 65 72 22 3e 67 65 6e 65 72 61 6c  eralter">general
4bc0: 69 7a 65 64 20 41 4c 54 45 52 20 54 41 42 4c 45  ized ALTER TABLE
4bd0: 20 70 72 6f 63 65 64 75 72 65 3c 2f 61 3e 0a 61   procedure</a>.a
4be0: 62 6f 76 65 20 77 69 6c 6c 20 77 6f 72 6b 20 65  bove will work e
4bf0: 76 65 6e 20 69 66 20 74 68 65 0a 73 63 68 65 6d  ven if the.schem
4c00: 61 20 63 68 61 6e 67 65 20 63 61 75 73 65 73 20  a change causes 
4c10: 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  the information 
4c20: 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 74 61  stored in the ta
4c30: 62 6c 65 20 74 6f 20 63 68 61 6e 67 65 2e 0a 53  ble to change..S
4c40: 6f 20 74 68 65 20 66 75 6c 6c 20 31 32 2d 73 74  o the full 12-st
4c50: 65 70 20 70 72 6f 63 65 64 75 72 65 20 61 62 6f  ep procedure abo
4c60: 76 65 20 69 73 20 61 70 70 72 6f 70 72 69 61 74  ve is appropriat
4c70: 65 20 66 6f 72 20 64 72 6f 70 70 69 6e 67 20 61  e for dropping a
4c80: 20 63 6f 6c 75 6d 6e 2c 0a 63 68 61 6e 67 69 6e   column,.changin
4c90: 67 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 63  g the order of c
4ca0: 6f 6c 75 6d 6e 73 2c 20 61 64 64 69 6e 67 20 6f  olumns, adding o
4cb0: 72 20 72 65 6d 6f 76 69 6e 67 20 61 20 55 4e 49  r removing a UNI
4cc0: 51 55 45 20 63 6f 6e 73 74 72 61 69 6e 74 0a 6f  QUE constraint.o
4cd0: 72 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 61  r PRIMARY KEY, a
4ce0: 64 64 69 6e 67 20 43 48 45 43 4b 20 6f 72 20 46  dding CHECK or F
4cf0: 4f 52 45 49 47 4e 20 4b 45 59 20 6f 72 20 4e 4f  OREIGN KEY or NO
4d00: 54 20 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e  T NULL constrain
4d10: 74 73 2c 0a 6f 72 20 63 68 61 6e 67 69 6e 67 20  ts,.or changing 
4d20: 74 68 65 20 64 61 74 61 74 79 70 65 20 66 6f 72  the datatype for
4d30: 20 61 20 63 6f 6c 75 6d 6e 2c 20 66 6f 72 20 65   a column, for e
4d40: 78 61 6d 70 6c 65 2e 20 20 48 6f 77 65 76 65 72  xample.  However
4d50: 2c 20 61 20 73 69 6d 70 6c 65 72 0a 61 6e 64 20  , a simpler.and 
4d60: 66 61 73 74 65 72 20 70 72 6f 63 65 64 75 72 65  faster procedure
4d70: 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20   can optionally 
4d80: 62 65 20 75 73 65 64 20 66 6f 72 0a 73 6f 6d 65  be used for.some
4d90: 20 63 68 61 6e 67 65 73 20 74 68 61 74 20 64 6f   changes that do
4da0: 20 6e 6f 20 61 66 66 65 63 74 20 74 68 65 20 6f   no affect the o
4db0: 6e 2d 64 69 73 6b 20 63 6f 6e 74 65 6e 74 20 69  n-disk content i
4dc0: 6e 20 61 6e 79 20 77 61 79 2e 0a 54 68 65 20 66  n any way..The f
4dd0: 6f 6c 6c 6f 77 69 6e 67 20 73 69 6d 70 6c 65 72  ollowing simpler
4de0: 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 61 70   procedure is ap
4df0: 70 72 6f 70 72 69 61 74 65 20 66 6f 72 20 72 65  propriate for re
4e00: 6d 6f 76 69 6e 67 0a 43 48 45 43 4b 20 6f 72 20  moving.CHECK or 
4e10: 46 4f 52 45 49 47 4e 20 4b 45 59 20 6f 72 20 4e  FOREIGN KEY or N
4e20: 4f 54 20 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69  OT NULL constrai
4e30: 6e 74 73 2c 0a 6f 72 20 61 64 64 69 6e 67 2c 20  nts,.or adding, 
4e40: 72 65 6d 6f 76 69 6e 67 2c 20 6f 72 20 63 68 61  removing, or cha
4e50: 6e 67 69 6e 67 20 64 65 66 61 75 6c 74 20 76 61  nging default va
4e60: 6c 75 65 73 20 6f 6e 0a 61 20 63 6f 6c 75 6d 6e  lues on.a column
4e70: 2e 0a 0a 3c 6f 6c 3e 0a 3c 6c 49 3e 3c 70 3e 20  ...<ol>.<lI><p> 
4e80: 53 74 61 72 74 20 61 20 74 72 61 6e 73 61 63 74  Start a transact
4e90: 69 6f 6e 2e 0a 0a 3c 6c 69 3e 3c 70 3e 20 52 75  ion...<li><p> Ru
4ea0: 6e 20 3c 61 20 68 72 65 66 3d 22 70 72 61 67 6d  n <a href="pragm
4eb0: 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 73 63  a.html#pragma_sc
4ec0: 68 65 6d 61 5f 76 65 72 73 69 6f 6e 22 3e 50 52  hema_version">PR
4ed0: 41 47 4d 41 20 73 63 68 65 6d 61 5f 76 65 72 73  AGMA schema_vers
4ee0: 69 6f 6e 3c 2f 61 3e 20 74 6f 20 64 65 74 65 72  ion</a> to deter
4ef0: 6d 69 6e 65 20 74 68 65 20 63 75 72 72 65 6e 74  mine the current
4f00: 20 73 63 68 65 6d 61 0a 76 65 72 73 69 6f 6e 20   schema.version 
4f10: 6e 75 6d 62 65 72 2e 20 20 54 68 69 73 20 6e 75  number.  This nu
4f20: 6d 62 65 72 20 77 69 6c 6c 20 62 65 20 6e 65 65  mber will be nee
4f30: 64 65 64 20 66 6f 72 20 73 74 65 70 20 36 20 62  ded for step 6 b
4f40: 65 6c 6f 77 2e 0a 0a 3c 6c 69 3e 3c 70 3e 20 41  elow...<li><p> A
4f50: 63 74 69 76 61 74 65 20 73 63 68 65 6d 61 20 65  ctivate schema e
4f60: 64 69 74 69 6e 67 20 75 73 69 6e 67 20 0a 3c 61  diting using .<a
4f70: 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74   href="pragma.ht
4f80: 6d 6c 23 70 72 61 67 6d 61 5f 77 72 69 74 61 62  ml#pragma_writab
4f90: 6c 65 5f 73 63 68 65 6d 61 22 3e 50 52 41 47 4d  le_schema">PRAGM
4fa0: 41 20 77 72 69 74 61 62 6c 65 5f 73 63 68 65 6d  A writable_schem
4fb0: 61 3d 4f 4e 3c 2f 61 3e 2e 0a 0a 3c 6c 69 3e 3c  a=ON</a>...<li><
4fc0: 70 3e 20 52 75 6e 20 61 6e 20 3c 61 20 68 72 65  p> Run an <a hre
4fd0: 66 3d 22 6c 61 6e 67 5f 75 70 64 61 74 65 2e 68  f="lang_update.h
4fe0: 74 6d 6c 22 3e 55 50 44 41 54 45 3c 2f 61 3e 20  tml">UPDATE</a> 
4ff0: 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 63 68 61  statement to cha
5000: 6e 67 65 20 74 68 65 20 64 65 66 69 6e 69 74 69  nge the definiti
5010: 6f 6e 20 6f 66 20 74 61 62 6c 65 20 58 0a 69 6e  on of table X.in
5020: 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 66 69   the <a href="fi
5030: 6c 65 66 6f 72 6d 61 74 32 2e 68 74 6d 6c 23 73  leformat2.html#s
5040: 71 6c 69 74 65 5f 6d 61 73 74 65 72 22 3e 73 71  qlite_master">sq
5050: 6c 69 74 65 5f 6d 61 73 74 65 72 20 74 61 62 6c  lite_master tabl
5060: 65 3c 2f 61 3e 3a 20 0a 55 50 44 41 54 45 20 73  e</a>: .UPDATE s
5070: 71 6c 69 74 65 5f 6d 61 73 74 65 72 20 53 45 54  qlite_master SET
5080: 20 73 71 6c 3d 2e 2e 2e 20 57 48 45 52 45 20 74   sql=... WHERE t
5090: 79 70 65 3d 27 74 61 62 6c 65 27 20 41 4e 44 20  ype='table' AND 
50a0: 6e 61 6d 65 3d 27 58 27 3b 0a 3c 70 3e 3c 65 6d  name='X';.<p><em
50b0: 3e 43 61 75 74 69 6f 6e 3a 3c 2f 65 6d 3e 20 20  >Caution:</em>  
50c0: 4d 61 6b 69 6e 67 20 61 20 63 68 61 6e 67 65 20  Making a change 
50d0: 74 6f 20 74 68 65 20 73 71 6c 69 74 65 5f 6d 61  to the sqlite_ma
50e0: 73 74 65 72 20 74 61 62 6c 65 20 6c 69 6b 65 20  ster table like 
50f0: 74 68 69 73 20 77 69 6c 6c 0a 72 65 6e 64 65 72  this will.render
5100: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f   the database co
5110: 72 72 75 70 74 20 61 6e 64 20 75 6e 72 65 61 64  rrupt and unread
5120: 61 62 6c 65 20 69 66 20 74 68 65 20 63 68 61 6e  able if the chan
5130: 67 65 20 63 6f 6e 74 61 69 6e 73 0a 61 20 73 79  ge contains.a sy
5140: 6e 74 61 78 20 65 72 72 6f 72 2e 20 20 49 74 20  ntax error.  It 
5150: 69 73 20 73 75 67 67 65 73 74 65 64 20 74 68 61  is suggested tha
5160: 74 20 63 61 72 65 66 75 6c 20 74 65 73 74 69 6e  t careful testin
5170: 67 20 6f 66 20 74 68 65 20 55 50 44 41 54 45 0a  g of the UPDATE.
5180: 73 74 61 74 65 6d 65 6e 74 20 62 65 20 64 6f 6e  statement be don
5190: 65 20 6f 6e 20 61 20 73 65 70 61 72 61 74 65 20  e on a separate 
51a0: 62 6c 61 6e 6b 20 64 61 74 61 62 61 73 65 20 70  blank database p
51b0: 72 69 6f 72 20 74 6f 20 75 73 69 6e 67 20 69 74  rior to using it
51c0: 20 6f 6e 0a 61 20 64 61 74 61 62 61 73 65 20 63   on.a database c
51d0: 6f 6e 74 61 69 6e 69 6e 67 20 69 6d 70 6f 72 74  ontaining import
51e0: 61 6e 74 20 64 61 74 61 2e 0a 0a 3c 6c 69 3e 3c  ant data...<li><
51f0: 70 3e 20 49 66 20 74 68 65 20 63 68 61 6e 67 65  p> If the change
5200: 20 74 6f 20 74 61 62 6c 65 20 58 20 61 6c 73 6f   to table X also
5210: 20 61 66 66 65 63 74 73 20 6f 74 68 65 72 20 74   affects other t
5220: 61 62 6c 65 73 20 6f 72 20 69 6e 64 65 78 65 73  ables or indexes
5230: 20 6f 72 0a 74 72 69 67 67 65 72 73 20 61 72 65   or.triggers are
5240: 20 76 69 65 77 73 20 77 69 74 68 69 6e 20 73 63   views within sc
5250: 68 65 6d 61 2c 20 74 68 65 6e 20 72 75 6e 20 3c  hema, then run <
5260: 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 75 70 64  a href="lang_upd
5270: 61 74 65 2e 68 74 6d 6c 22 3e 55 50 44 41 54 45  ate.html">UPDATE
5280: 3c 2f 61 3e 20 73 74 61 74 65 6d 65 6e 74 73 20  </a> statements 
5290: 74 6f 20 6d 6f 64 69 66 79 0a 74 68 6f 73 65 20  to modify.those 
52a0: 6f 74 68 65 72 20 74 61 62 6c 65 73 20 69 6e 64  other tables ind
52b0: 65 78 65 73 20 61 6e 64 20 76 69 65 77 73 20 74  exes and views t
52c0: 6f 6f 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65  oo.  For example
52d0: 2c 20 69 66 20 74 68 65 20 6e 61 6d 65 20 6f 66  , if the name of
52e0: 0a 61 20 63 6f 6c 75 6d 6e 20 63 68 61 6e 67 65  .a column change
52f0: 73 2c 20 61 6c 6c 20 46 4f 52 45 49 47 4e 20 4b  s, all FOREIGN K
5300: 45 59 20 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20  EY constraints, 
5310: 74 72 69 67 67 65 72 73 2c 20 69 6e 64 65 78 65  triggers, indexe
5320: 73 2c 20 61 6e 64 0a 76 69 65 77 73 20 74 68 61  s, and.views tha
5330: 74 20 72 65 66 65 72 20 74 6f 20 74 68 61 74 20  t refer to that 
5340: 63 6f 6c 75 6d 6e 20 6d 75 73 74 20 62 65 20 6d  column must be m
5350: 6f 64 69 66 69 65 64 2e 0a 3c 70 3e 3c 65 6d 3e  odified..<p><em>
5360: 43 61 75 74 69 6f 6e 3a 3c 2f 65 6d 3e 20 20 4f  Caution:</em>  O
5370: 6e 63 65 20 61 67 61 69 6e 2c 20 6d 61 6b 69 6e  nce again, makin
5380: 67 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65  g changes to the
5390: 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 20 0a   sqlite_master .
53a0: 74 61 62 6c 65 20 6c 69 6b 65 20 74 68 69 73 20  table like this 
53b0: 77 69 6c 6c 20 72 65 6e 64 65 72 20 74 68 65 20  will render the 
53c0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
53d0: 20 61 6e 64 20 75 6e 72 65 61 64 61 62 6c 65 20   and unreadable 
53e0: 69 66 20 74 68 65 20 0a 63 68 61 6e 67 65 20 63  if the .change c
53f0: 6f 6e 74 61 69 6e 73 20 61 6e 20 65 72 72 6f 72  ontains an error
5400: 2e 20 20 43 61 72 65 66 75 6c 6c 79 20 74 65 73  .  Carefully tes
5410: 74 20 74 68 69 73 20 65 6e 74 69 72 65 20 70 72  t this entire pr
5420: 6f 63 65 64 75 72 65 0a 6f 6e 20 61 20 73 65 70  ocedure.on a sep
5430: 61 72 61 74 65 20 74 65 73 74 20 64 61 74 61 62  arate test datab
5440: 61 73 65 20 70 72 69 6f 72 20 74 6f 20 75 73 69  ase prior to usi
5450: 6e 67 20 69 74 20 6f 6e 0a 61 20 64 61 74 61 62  ng it on.a datab
5460: 61 73 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69  ase containing i
5470: 6d 70 6f 72 74 61 6e 74 20 64 61 74 61 20 61 6e  mportant data an
5480: 64 2f 6f 72 20 6d 61 6b 65 20 62 61 63 6b 75 70  d/or make backup
5490: 20 63 6f 70 69 65 73 20 6f 66 0a 69 6d 70 6f 72   copies of.impor
54a0: 74 61 6e 74 20 64 61 74 61 62 61 73 65 73 20 70  tant databases p
54b0: 72 69 6f 72 20 74 6f 20 72 75 6e 6e 69 6e 67 20  rior to running 
54c0: 74 68 69 73 20 70 72 6f 63 65 64 75 72 65 2e 0a  this procedure..
54d0: 0a 3c 6c 69 3e 3c 70 3e 20 49 6e 63 72 65 6d 65  .<li><p> Increme
54e0: 6e 74 20 74 68 65 20 73 63 68 65 6d 61 20 76 65  nt the schema ve
54f0: 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 75 73 69  rsion number usi
5500: 6e 67 0a 3c 61 20 68 72 65 66 3d 22 70 72 61 67  ng.<a href="prag
5510: 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 73  ma.html#pragma_s
5520: 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 22 3e 50  chema_version">P
5530: 52 41 47 4d 41 20 73 63 68 65 6d 61 5f 76 65 72  RAGMA schema_ver
5540: 73 69 6f 6e 3d 58 3c 2f 61 3e 20 77 68 65 72 65  sion=X</a> where
5550: 20 58 20 69 73 20 6f 6e 65 0a 6d 6f 72 65 20 74   X is one.more t
5560: 68 61 6e 20 74 68 65 20 6f 6c 64 20 73 63 68 65  han the old sche
5570: 6d 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65  ma version numbe
5580: 72 20 66 6f 75 6e 64 20 69 6e 20 73 74 65 70 20  r found in step 
5590: 32 20 61 62 6f 76 65 2e 0a 0a 3c 6c 69 3e 3c 70  2 above...<li><p
55a0: 3e 20 44 69 73 61 62 6c 65 20 73 63 68 65 6d 61  > Disable schema
55b0: 20 65 64 69 74 69 6e 67 20 75 73 69 6e 67 20 0a   editing using .
55c0: 3c 61 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e  <a href="pragma.
55d0: 68 74 6d 6c 23 70 72 61 67 6d 61 5f 77 72 69 74  html#pragma_writ
55e0: 61 62 6c 65 5f 73 63 68 65 6d 61 22 3e 50 52 41  able_schema">PRA
55f0: 47 4d 41 20 77 72 69 74 61 62 6c 65 5f 73 63 68  GMA writable_sch
5600: 65 6d 61 3d 4f 46 46 3c 2f 61 3e 2e 0a 0a 3c 6c  ema=OFF</a>...<l
5610: 69 3e 3c 70 3e 20 28 4f 70 74 69 6f 6e 61 6c 29  i><p> (Optional)
5620: 20 52 75 6e 20 3c 61 20 68 72 65 66 3d 22 70 72   Run <a href="pr
5630: 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61  agma.html#pragma
5640: 5f 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b  _integrity_check
5650: 22 3e 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69  ">PRAGMA integri
5660: 74 79 5f 63 68 65 63 6b 3c 2f 61 3e 20 74 6f 20  ty_check</a> to 
5670: 76 65 72 69 66 79 20 74 68 61 74 20 74 68 65 0a  verify that the.
5680: 73 63 68 65 6d 61 20 63 68 61 6e 67 65 73 20 64  schema changes d
5690: 69 64 20 6e 6f 74 20 64 61 6d 61 67 65 20 74 68  id not damage th
56a0: 65 20 64 61 74 61 62 61 73 65 2e 0a 0a 3c 6c 69  e database...<li
56b0: 3e 3c 70 3e 20 43 6f 6d 6d 69 74 20 74 68 65 20  ><p> Commit the 
56c0: 74 72 61 6e 73 61 63 74 69 6f 6e 20 73 74 61 72  transaction star
56d0: 74 65 64 20 6f 6e 20 73 74 65 70 20 31 20 61 62  ted on step 1 ab
56e0: 6f 76 65 2e 0a 3c 2f 6f 6c 3e 0a 0a 3c 70 3e 49  ove..</ol>..<p>I
56f0: 66 20 73 6f 6d 65 20 66 75 74 75 72 65 20 76 65  f some future ve
5700: 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20  rsion of SQLite 
5710: 61 64 64 73 20 6e 65 77 20 41 4c 54 45 52 20 54  adds new ALTER T
5720: 41 42 4c 45 20 63 61 70 61 62 69 6c 69 74 69 65  ABLE capabilitie
5730: 73 2c 20 0a 74 68 6f 73 65 20 63 61 70 61 62 69  s, .those capabi
5740: 6c 69 74 69 65 73 20 77 69 6c 6c 20 76 65 72 79  lities will very
5750: 20 6c 69 6b 65 6c 79 20 75 73 65 20 6f 6e 65 20   likely use one 
5760: 6f 66 20 74 68 65 20 74 77 6f 20 70 72 6f 63 65  of the two proce
5770: 64 75 72 65 73 0a 6f 75 74 6c 69 6e 65 64 20 61  dures.outlined a
5780: 62 6f 76 65 2e 0a 0a 3c 61 20 6e 61 6d 65 3d 22  bove...<a name="
5790: 61 6c 74 65 72 74 61 62 6c 65 69 73 68 61 72 64  altertableishard
57a0: 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 57 68 79 20  "></a>..<h3>Why 
57b0: 41 4c 54 45 52 20 54 41 42 4c 45 20 69 73 20 73  ALTER TABLE is s
57c0: 75 63 68 20 61 20 70 72 6f 62 6c 65 6d 20 66 6f  uch a problem fo
57d0: 72 20 53 51 4c 69 74 65 3c 2f 68 33 3e 0a 0a 3c  r SQLite</h3>..<
57e0: 70 3e 4d 6f 73 74 20 53 51 4c 20 64 61 74 61 62  p>Most SQL datab
57f0: 61 73 65 20 65 6e 67 69 6e 65 73 20 73 74 6f 72  ase engines stor
5800: 65 20 74 68 65 20 73 63 68 65 6d 61 20 61 6c 72  e the schema alr
5810: 65 61 64 79 20 70 61 72 73 65 64 20 69 6e 74 6f  eady parsed into
5820: 0a 76 61 72 69 6f 75 73 20 73 79 73 74 65 6d 20  .various system 
5830: 74 61 62 6c 65 73 2e 20 20 4f 6e 20 74 68 6f 73  tables.  On thos
5840: 65 20 64 61 74 61 62 61 73 65 20 65 6e 67 69 6e  e database engin
5850: 65 73 2c 20 41 4c 54 45 52 20 54 41 42 4c 45 20  es, ALTER TABLE 
5860: 6d 65 72 65 6c 79 20 0a 68 61 73 20 74 6f 20 6d  merely .has to m
5870: 61 6b 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e  ake modification
5880: 73 20 74 6f 20 74 68 65 20 63 6f 72 72 65 73 70  s to the corresp
5890: 6f 6e 64 69 6e 67 20 73 79 73 74 65 6d 20 74 61  onding system ta
58a0: 62 6c 65 73 2e 0a 0a 3c 70 3e 53 51 4c 69 74 65  bles...<p>SQLite
58b0: 20 69 73 20 64 69 66 66 65 72 65 6e 74 20 69 6e   is different in
58c0: 20 74 68 61 74 20 69 74 20 73 74 6f 72 65 73 20   that it stores 
58d0: 74 68 65 20 73 63 68 65 6d 61 0a 69 6e 20 74 68  the schema.in th
58e0: 65 20 3c 61 20 68 72 65 66 3d 22 66 69 6c 65 66  e <a href="filef
58f0: 6f 72 6d 61 74 32 2e 68 74 6d 6c 23 73 71 6c 69  ormat2.html#sqli
5900: 74 65 5f 6d 61 73 74 65 72 22 3e 73 71 6c 69 74  te_master">sqlit
5910: 65 5f 6d 61 73 74 65 72 3c 2f 61 3e 20 74 61 62  e_master</a> tab
5920: 6c 65 20 61 73 20 74 68 65 20 6f 72 69 67 69 6e  le as the origin
5930: 61 6c 20 74 65 78 74 20 6f 66 20 74 68 65 20 43  al text of the C
5940: 52 45 41 54 45 0a 73 74 61 74 65 6d 65 6e 74 73  REATE.statements
5950: 20 74 68 61 74 20 64 65 66 69 6e 65 20 74 68 65   that define the
5960: 20 73 63 68 65 6d 61 2e 20 20 48 65 6e 63 65 20   schema.  Hence 
5970: 41 4c 54 45 52 20 54 41 42 4c 45 20 6e 65 65 64  ALTER TABLE need
5980: 73 0a 74 6f 20 72 65 76 69 73 65 20 74 68 65 20  s.to revise the 
5990: 74 65 78 74 20 6f 66 20 74 68 65 20 43 52 45 41  text of the CREA
59a0: 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 44  TE statement.  D
59b0: 6f 69 6e 67 0a 73 6f 20 63 61 6e 20 62 65 20 74  oing.so can be t
59c0: 72 69 63 6b 79 20 66 6f 72 20 63 65 72 74 61 69  ricky for certai
59d0: 6e 20 22 63 72 65 61 74 69 76 65 22 20 73 63 68  n "creative" sch
59e0: 65 6d 61 20 64 65 73 69 67 6e 73 2e 0a 0a 3c 70  ema designs...<p
59f0: 3e 54 68 65 20 53 51 4c 69 74 65 20 61 70 70 72  >The SQLite appr
5a00: 6f 61 63 68 20 6f 66 20 73 74 6f 72 69 6e 67 20  oach of storing 
5a10: 74 68 65 20 73 63 68 65 6d 61 20 61 73 20 74 65  the schema as te
5a20: 78 74 20 68 61 73 20 61 64 76 61 6e 74 61 67 65  xt has advantage
5a30: 73 0a 66 6f 72 20 61 6e 20 65 6d 62 65 64 64 65  s.for an embedde
5a40: 64 20 72 65 6c 61 74 69 6f 6e 61 6c 20 64 61 74  d relational dat
5a50: 61 62 61 73 65 2e 20 20 46 6f 72 20 6f 6e 65 2c  abase.  For one,
5a60: 20 69 74 20 6d 65 61 6e 73 20 74 68 61 74 20 74   it means that t
5a70: 68 65 0a 73 63 68 65 6d 61 20 74 61 6b 65 73 20  he.schema takes 
5a80: 75 70 20 6c 65 73 73 20 73 70 61 63 65 20 69 6e  up less space in
5a90: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69   the database fi
5aa0: 6c 65 2e 20 20 54 68 69 73 20 69 73 20 69 6d 70  le.  This is imp
5ab0: 6f 72 74 61 6e 74 0a 73 69 6e 63 65 20 61 20 63  ortant.since a c
5ac0: 6f 6d 6d 6f 6e 20 53 51 4c 69 74 65 20 75 73 61  ommon SQLite usa
5ad0: 67 65 20 70 61 74 74 65 72 6e 20 69 73 20 74 6f  ge pattern is to
5ae0: 20 68 61 76 65 20 6d 61 6e 79 20 73 6d 61 6c 6c   have many small
5af0: 2c 0a 73 65 70 61 72 61 74 65 20 64 61 74 61 62  ,.separate datab
5b00: 61 73 65 20 66 69 6c 65 73 20 69 6e 73 74 65 61  ase files instea
5b10: 64 20 6f 66 20 70 75 74 74 69 6e 67 20 65 76 65  d of putting eve
5b20: 72 79 74 68 69 6e 67 20 69 6e 20 6f 6e 65 0a 62  rything in one.b
5b30: 69 67 20 67 6c 6f 62 61 6c 20 64 61 74 61 62 61  ig global databa
5b40: 73 65 20 66 69 6c 65 2c 20 77 68 69 63 68 20 69  se file, which i
5b50: 73 20 74 68 65 20 75 73 75 61 6c 20 61 70 70 72  s the usual appr
5b60: 6f 61 63 68 20 66 6f 72 20 63 6c 69 65 6e 74 2f  oach for client/
5b70: 73 65 72 76 65 72 0a 64 61 74 61 62 61 73 65 20  server.database 
5b80: 65 6e 67 69 6e 65 73 2e 0a 53 69 6e 63 65 20 74  engines..Since t
5b90: 68 65 20 73 63 68 65 6d 61 20 69 73 20 64 75 70  he schema is dup
5ba0: 6c 69 63 61 74 65 64 20 69 6e 20 65 61 63 68 20  licated in each 
5bb0: 73 65 70 61 72 61 74 65 20 64 61 74 61 62 61 73  separate databas
5bc0: 65 20 66 69 6c 65 2c 20 69 74 20 69 73 0a 69 6d  e file, it is.im
5bd0: 70 6f 72 74 61 6e 74 20 74 6f 20 6b 65 65 70 20  portant to keep 
5be0: 74 68 65 20 73 63 68 65 6d 61 20 72 65 70 72 65  the schema repre
5bf0: 73 65 6e 74 61 74 69 6f 6e 20 63 6f 6d 70 61 63  sentation compac
5c00: 74 2e 0a 0a 3c 70 3e 53 74 6f 72 69 6e 67 20 74  t...<p>Storing t
5c10: 68 65 20 73 63 68 65 6d 61 20 61 73 20 74 65 78  he schema as tex
5c20: 74 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 73  t rather than as
5c30: 20 70 61 72 73 65 64 20 74 61 62 6c 65 73 20 61   parsed tables a
5c40: 6c 73 6f 0a 67 69 76 65 20 66 6c 65 78 69 62 69  lso.give flexibi
5c50: 6c 69 74 79 20 74 6f 20 74 68 65 20 69 6d 70 6c  lity to the impl
5c60: 65 6d 65 6e 74 61 74 69 6f 6e 2e 20 20 53 69 6e  ementation.  Sin
5c70: 63 65 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20  ce the internal 
5c80: 70 61 72 73 65 0a 6f 66 20 74 68 65 20 73 63 68  parse.of the sch
5c90: 65 6d 61 20 69 73 20 72 65 67 65 6e 65 72 61 74  ema is regenerat
5ca0: 65 64 20 65 61 63 68 20 74 69 6d 65 20 74 68 65  ed each time the
5cb0: 20 64 61 74 61 62 61 73 65 20 69 73 20 6f 70 65   database is ope
5cc0: 6e 65 64 2c 20 74 68 65 0a 69 6e 74 65 72 6e 61  ned, the.interna
5cd0: 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e  l representation
5ce0: 20 6f 66 20 74 68 65 20 73 63 68 65 6d 61 20 63   of the schema c
5cf0: 61 6e 20 63 68 61 6e 67 65 20 66 72 6f 6d 20 6f  an change from o
5d00: 6e 65 20 72 65 6c 65 61 73 65 0a 74 6f 20 74 68  ne release.to th
5d10: 65 20 6e 65 78 74 2e 20 20 54 68 69 73 20 69 73  e next.  This is
5d20: 20 69 6d 70 6f 72 74 61 6e 74 2c 20 61 73 20 73   important, as s
5d30: 6f 6d 65 74 69 6d 65 73 20 6e 65 77 20 66 65 61  ometimes new fea
5d40: 74 75 72 65 73 20 72 65 71 75 69 72 65 0a 65 6e  tures require.en
5d50: 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68  hancements to th
5d60: 65 20 69 6e 74 65 72 6e 61 6c 20 73 63 68 65 6d  e internal schem
5d70: 61 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e  a representation
5d80: 2e 20 20 43 68 61 6e 67 69 6e 67 20 74 68 65 0a  .  Changing the.
5d90: 69 6e 74 65 72 6e 61 6c 20 73 63 68 65 6d 61 20  internal schema 
5da0: 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 77  representation w
5db0: 6f 75 6c 64 20 62 65 20 6d 75 63 68 20 6d 6f 72  ould be much mor
5dc0: 65 20 64 69 66 66 69 63 75 6c 74 20 69 66 20 74  e difficult if t
5dd0: 68 65 0a 73 63 68 65 6d 61 20 72 65 70 72 65 73  he.schema repres
5de0: 65 6e 74 61 74 69 6f 6e 20 77 61 73 20 65 78 70  entation was exp
5df0: 6f 73 65 64 20 69 6e 20 74 68 65 20 64 61 74 61  osed in the data
5e00: 62 61 73 65 20 66 69 6c 65 2e 20 20 53 6f 2c 20  base file.  So, 
5e10: 69 6e 20 6f 74 68 65 72 0a 77 6f 72 64 73 2c 20  in other.words, 
5e20: 73 74 6f 72 69 6e 67 20 74 68 65 20 73 63 68 65  storing the sche
5e30: 6d 61 20 61 73 20 74 65 78 74 20 68 65 6c 70 73  ma as text helps
5e40: 20 6d 61 69 6e 74 61 69 6e 20 62 61 63 6b 77 61   maintain backwa
5e50: 72 64 73 20 0a 63 6f 6d 70 61 74 69 62 69 6c 69  rds .compatibili
5e60: 74 79 2c 20 61 6e 64 20 68 65 6c 70 73 20 65 6e  ty, and helps en
5e70: 73 75 72 65 20 74 68 61 74 20 6f 6c 64 65 72 20  sure that older 
5e80: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 63  database files c
5e90: 61 6e 20 62 65 0a 72 65 61 64 20 61 6e 64 20 77  an be.read and w
5ea0: 72 69 74 74 65 6e 20 62 79 20 6e 65 77 65 72 20  ritten by newer 
5eb0: 76 65 72 73 69 6f 6e 73 20 6f 66 20 53 51 4c 69  versions of SQLi
5ec0: 74 65 2e 0a 0a 3c 70 3e 53 74 6f 72 69 6e 67 20  te...<p>Storing 
5ed0: 74 68 65 20 73 63 68 65 6d 61 20 61 20 74 65 78  the schema a tex
5ee0: 74 20 61 6c 73 6f 20 6d 61 6b 65 73 20 74 68 65  t also makes the
5ef0: 20 0a 3c 61 20 68 72 65 66 3d 22 66 69 6c 65 66   .<a href="filef
5f00: 6f 72 6d 61 74 32 2e 68 74 6d 6c 22 3e 53 51 4c  ormat2.html">SQL
5f10: 69 74 65 20 64 61 74 61 62 61 73 65 20 66 69 6c  ite database fil
5f20: 65 20 66 6f 72 6d 61 74 3c 2f 61 3e 20 65 61 73  e format</a> eas
5f30: 69 65 72 20 74 6f 20 64 65 66 69 6e 65 2c 20 64  ier to define, d
5f40: 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 0a 75 6e  ocument, and .un
5f50: 64 65 72 73 74 61 6e 64 2e 20 54 68 69 73 20 68  derstand. This h
5f60: 65 6c 70 73 20 6d 61 6b 65 20 53 51 4c 69 74 65  elps make SQLite
5f70: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20   database files 
5f80: 61 0a 3c 61 20 68 72 65 66 3d 22 6c 6f 63 72 73  a.<a href="locrs
5f90: 66 2e 68 74 6d 6c 22 3e 72 65 63 6f 6d 6d 65 6e  f.html">recommen
5fa0: 64 65 64 20 73 74 6f 72 61 67 65 20 66 6f 72 6d  ded storage form
5fb0: 61 74 3c 2f 61 3e 20 66 6f 72 20 6c 6f 6e 67 2d  at</a> for long-
5fc0: 74 65 72 6d 20 61 72 63 68 69 76 69 6e 67 20 6f  term archiving o
5fd0: 66 20 64 61 74 61 2e 0a 0a 3c 70 3e 54 68 65 20  f data...<p>The 
5fe0: 64 6f 77 6e 73 69 64 65 20 6f 66 20 73 74 6f 72  downside of stor
5ff0: 69 6e 67 20 73 63 68 65 6d 61 20 61 20 74 65 78  ing schema a tex
6000: 74 20 69 73 20 74 68 61 74 20 69 74 20 63 61 6e  t is that it can
6010: 20 6d 61 6b 65 0a 74 68 65 20 73 63 68 65 6d 61   make.the schema
6020: 20 74 72 69 63 6b 79 20 74 6f 20 6d 6f 64 69 66   tricky to modif
6030: 79 2e 20 20 41 6e 64 20 66 6f 72 20 74 68 61 74  y.  And for that
6040: 20 72 65 61 73 6f 6e 2c 20 74 68 65 20 41 4c 54   reason, the ALT
6050: 45 52 20 54 41 42 4c 45 0a 73 75 70 70 6f 72 74  ER TABLE.support
6060: 20 69 6e 20 53 51 4c 69 74 65 20 68 61 73 20 74   in SQLite has t
6070: 72 61 64 69 74 69 6f 6e 61 6c 6c 79 20 6c 61 67  raditionally lag
6080: 67 65 64 20 62 65 68 69 6e 64 20 6f 74 68 65 72  ged behind other
6090: 20 53 51 4c 0a 64 61 74 61 62 61 73 65 20 65 6e   SQL.database en
60a0: 67 69 6e 65 73 20 74 68 61 74 20 73 74 6f 72 65  gines that store
60b0: 20 74 68 65 69 72 20 73 63 68 65 6d 61 73 20 61   their schemas a
60c0: 73 20 70 61 72 73 65 64 20 73 79 73 74 65 6d 20  s parsed system 
60d0: 74 61 62 6c 65 73 0a 74 68 61 74 20 61 72 65 20  tables.that are 
60e0: 65 61 73 69 65 72 20 74 6f 20 6d 6f 64 69 66 79  easier to modify
60f0: 2e 0a 0a 0a 0a 0a 0a 0a 0a                       .........