1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
4
<title>SQL Features That SQLite Does Not Implement</title>
5
<style type="text/css">
8
font-family: Verdana, sans-serif;
13
a:visited { color: #734559 }
15
.logo { position:absolute; margin:3px; }
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
32
.toolbar a:visited { color: white; }
33
.toolbar a:hover { color: #044a64; background: white; }
35
.content { margin: 5%; }
36
.content dt { font-weight:bold; }
37
.content dd { margin-bottom: 25px; margin-left:20%; }
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
41
.se { background: url(images/se.gif) 100% 100% no-repeat #044a64}
42
.sw { background: url(images/sw.gif) 0% 100% no-repeat }
43
.ne { background: url(images/ne.gif) 100% 0% no-repeat }
44
.nw { background: url(images/nw.gif) 0% 0% no-repeat }
46
/* Things for "fancyformat" documents start here. */
47
.fancy img+p {font-style:italic}
48
.fancy .codeblock i { color: darkblue; }
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
50
.fancy h2 { margin-left: 10px }
51
.fancy h3 { margin-left: 20px }
52
.fancy h4 { margin-left: 30px }
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
55
.fancy #toc a { color: darkblue ; text-decoration: none }
56
.fancy .todo { color: #AA3333 ; font-style : italic }
57
.fancy .todo:before { content: 'TODO:' }
58
.fancy p.todo { border: solid #AA3333 1px; padding: 1ex }
59
.fancy img { display:block; }
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
62
.fancy li p { margin: 1em 0 }
63
/* End of "fancyformat" specific rules. */
69
<div><!-- container div to satisfy validator -->
72
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite Logo"
74
<div><!-- IE hack to prevent disappearing logo--></div>
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
77
<table width=100% style="clear:both"><tr><td>
78
<div class="se"><div class="sw"><div class="ne"><div class="nw">
79
<table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
82
<a href="about.html">About</a>
83
<a href="sitemap.html">Sitemap</a>
84
<a href="docs.html">Documentation</a>
85
<a href="download.html">Download</a>
86
<a href="copyright.html">License</a>
87
<a href="news.html">News</a>
88
<a href="support.html">Support</a>
91
gMsg = "Search SQLite Docs..."
92
function entersearch() {
93
var q = document.getElementById("q");
94
if( q.value == gMsg ) { q.value = "" }
95
q.style.color = "black"
96
q.style.fontStyle = "normal"
98
function leavesearch() {
99
var q = document.getElementById("q");
100
if( q.value == "" ) {
102
q.style.color = "#044a64"
103
q.style.fontStyle = "italic"
108
<div style="padding:0 1em 0px 0;white-space:nowrap">
109
<form name=f method="GET" action="http://www.sqlite.org/search">
110
<input id=q name=q type=text
111
onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
112
<input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
116
</div></div></div></div>
118
<div class=startsearch></div>
122
<h2>SQL Features That SQLite Does Not Implement</h2>
125
Rather than try to list all the features of SQL92 that SQLite does
126
support, it is much easier to list those that it does not.
127
Unsupported features of SQL92 are shown below.</p>
130
The order of this list gives some hint as to when a feature might
131
be added to SQLite. Those features near the top of the list are
132
likely to be added in the near future. There are no immediate
133
plans to add features near the bottom of the list.
136
<table cellpadding="10">
138
<tr><td valign="top"><b><nobr>RIGHT and FULL OUTER JOIN</nobr></b></td><td width="10"> </th><td valign="top">
139
LEFT OUTER JOIN is implemented, but not RIGHT OUTER JOIN or
141
</td></tr><tr><td valign="top"><b><nobr>Complete ALTER TABLE support</nobr></b></td><td width="10"> </th><td valign="top">
142
Only the RENAME TABLE and ADD COLUMN variants of the
143
ALTER TABLE command are supported. Other kinds of ALTER TABLE operations
145
DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT, and so forth are omitted.
146
</td></tr><tr><td valign="top"><b><nobr>Complete trigger support</nobr></b></td><td width="10"> </th><td valign="top">
147
FOR EACH ROW triggers are supported but not FOR EACH STATEMENT
149
</td></tr><tr><td valign="top"><b><nobr>Writing to VIEWs</nobr></b></td><td width="10"> </th><td valign="top">
150
VIEWs in SQLite are read-only. You may not execute a DELETE, INSERT, or
151
UPDATE statement on a view. But you can create a trigger
152
that fires on an attempt to DELETE, INSERT, or UPDATE a view and do
153
what you need in the body of the trigger.
154
</td></tr><tr><td valign="top"><b><nobr>GRANT and REVOKE</nobr></b></td><td width="10"> </th><td valign="top">
155
Since SQLite reads and writes an ordinary disk file, the
156
only access permissions that can be applied are the normal
157
file access permissions of the underlying operating system.
158
The GRANT and REVOKE commands commonly found on client/server
159
RDBMSes are not implemented because they would be meaningless
160
for an embedded database engine.