Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix typos and minor errors in lang.tcl. (CVS 1616) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
61db159c7d1d971266e487d44e3eb5bf |
User & Date: | danielk1977 2004-06-18 11:25:21.000 |
Context
2004-06-18
| ||
11:29 | Update the Makefile.in, version number, change log, etc for the 3.0.0 release. (CVS 1617) (check-in: 917391e05e user: drh tags: trunk) | |
11:25 | Fix typos and minor errors in lang.tcl. (CVS 1616) (check-in: 61db159c7d user: danielk1977 tags: trunk) | |
06:02 | Fix a couple of gcc warnings. (CVS 1615) (check-in: 960f55f3ec user: danielk1977 tags: trunk) | |
Changes
Changes to www/lang.tcl.
1 2 3 | # # Run this Tcl script to generate the sqlite.html file. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the sqlite.html file. # set rcsid {$Id: lang.tcl,v 1.70 2004/06/18 11:25:21 danielk1977 Exp $} source common.tcl header {Query Language Understood by SQLite} puts { <h2>SQL As Understood By SQLite</h2> <p>The SQLite library understands most of the standard SQL language. But it does <a href="omitted.html">omit some features</a> |
︙ | ︙ | |||
128 129 130 131 132 133 134 | temporary tables. These cannot be detached. Attached databases are removed using the <a href="#detach">DETACH DATABASE</a> statement.</p> <p>You can read from and write to an attached database and you can modify the schema of the attached database. This is a new feature of SQLite version 3.0. In SQLite 2.8, schema changes | | | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | temporary tables. These cannot be detached. Attached databases are removed using the <a href="#detach">DETACH DATABASE</a> statement.</p> <p>You can read from and write to an attached database and you can modify the schema of the attached database. This is a new feature of SQLite version 3.0. In SQLite 2.8, schema changes to attached databases were not allowed.</p> <p>You cannot create a new table with the same name as a table in an attached database, but you can attach a database which contains tables whose names are duplicates of tables in the main database. It is also permissible to attach the same database file multiple times.</p> <p>Tables in an attached database can be referred to using the syntax |
︙ | ︙ | |||
341 342 343 344 345 346 347 | of each CREATE INDEX statement is stored in the <b>sqlite_master</b> or <b>sqlite_temp_master</b> table, depending on whether the table being indexed is temporary. Everytime the database is opened, all CREATE INDEX statements are read from the <b>sqlite_master</b> table and used to regenerate SQLite's internal representation of the index layout.</p> | < | | | 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 | of each CREATE INDEX statement is stored in the <b>sqlite_master</b> or <b>sqlite_temp_master</b> table, depending on whether the table being indexed is temporary. Everytime the database is opened, all CREATE INDEX statements are read from the <b>sqlite_master</b> table and used to regenerate SQLite's internal representation of the index layout.</p> <p>Indexes are removed with the <a href="#dropindex">DROP INDEX</a> command.</p> } Section {CREATE TABLE} {createtable} Syntax {sql-command} { CREATE [TEMP | TEMPORARY] TABLE <table-name> ( <column-def> [, <column-def>]* [, <constraint>]* ) } {sql-command} { CREATE [TEMP | TEMPORARY] TABLE [<database-name>.] <table-name> AS <select-statement> } {column-def} { <name> [<type>] [[CONSTRAINT <name>] <column-constraint>]* } {type} { <typename> | <typename> ( <number> ) | <typename> ( <number> , <number> ) } {column-constraint} { |
︙ | ︙ | |||
419 420 421 422 423 424 425 426 427 428 429 430 431 432 | <p>If the "TEMP" or "TEMPORARY" keyword occurs in between "CREATE" and "TABLE" then the table that is created is only visible to the process that opened the database and is automatically deleted when the database is closed. Any indices created on a temporary table are also temporary. Temporary tables and indices are stored in a separate file distinct from the main database file.</p> <p>The optional conflict-clause following each constraint allows the specification of an alternative default constraint conflict resolution algorithm for that constraint. The default is abort ABORT. Different constraints within the same table may have different default conflict resolution algorithms. If an COPY, INSERT, or UPDATE command specifies a different conflict | > > > > > > | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 | <p>If the "TEMP" or "TEMPORARY" keyword occurs in between "CREATE" and "TABLE" then the table that is created is only visible to the process that opened the database and is automatically deleted when the database is closed. Any indices created on a temporary table are also temporary. Temporary tables and indices are stored in a separate file distinct from the main database file.</p> <p> If a <database-name> is specified, then the table is created in the named database. It is an error to specify both a <database-name> and the TEMP keyword, unless the <database-name> is "temp". If no database name is specified, and the TEMP keyword is not present, the table is created in the main database.</p> <p>The optional conflict-clause following each constraint allows the specification of an alternative default constraint conflict resolution algorithm for that constraint. The default is abort ABORT. Different constraints within the same table may have different default conflict resolution algorithms. If an COPY, INSERT, or UPDATE command specifies a different conflict |
︙ | ︙ | |||
459 460 461 462 463 464 465 | CREATE TABLE statement is synthesized and store in <b>sqlite_master</b> in place of the original command. The text of CREATE TEMPORARY TABLE statements are stored in the <b>sqlite_temp_master</b> table. </p> <p>Tables are removed using the <a href="#droptable">DROP TABLE</a> | | < | 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 | CREATE TABLE statement is synthesized and store in <b>sqlite_master</b> in place of the original command. The text of CREATE TEMPORARY TABLE statements are stored in the <b>sqlite_temp_master</b> table. </p> <p>Tables are removed using the <a href="#droptable">DROP TABLE</a> statement. </p> } Section {CREATE TRIGGER} createtrigger Syntax {sql-statement} { CREATE [TEMP | TEMPORARY] TRIGGER <trigger-name> [ BEFORE | AFTER ] |
︙ | ︙ | |||
624 625 626 627 628 629 630 | attached database.</p> } Section {CREATE VIEW} {createview} Syntax {sql-command} { | | > > > > > > > > > > > | 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 | attached database.</p> } Section {CREATE VIEW} {createview} Syntax {sql-command} { CREATE [TEMP | TEMPORARY] VIEW [<database-name>.] <view-name> AS <select-statement> } puts { <p>The CREATE VIEW command assigns a name to a pre-packaged <a href="#select">SELECT</a> statement. Once the view is created, it can be used in the FROM clause of another SELECT in place of a table name. </p> <p>If the "TEMP" or "TEMPORARY" keyword occurs in between "CREATE" and "TABLE" then the table that is created is only visible to the process that opened the database and is automatically deleted when the database is closed.</p> <p> If a <database-name> is specified, then the view is created in the named database. It is an error to specify both a <database-name> and the TEMP keyword, unless the <database-name> is "temp". If no database name is specified, and the TEMP keyword is not present, the table is created in the main database.</p> <p>You cannot COPY, DELETE, INSERT or UPDATE a view. Views are read-only in SQLite. However, in many cases you can use a <a href="#trigger"> TRIGGER</a> on the view to accomplish the same thing. Views are removed with the <a href="#dropview">DROP VIEW</a> command. Non-temporary views cannot be created on tables in an attached database.</p> |
︙ | ︙ | |||
701 702 703 704 705 706 707 | command.</p> } Section {DROP TABLE} droptable Syntax {sql-command} { | | | 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 | command.</p> } Section {DROP TABLE} droptable Syntax {sql-command} { DROP TABLE [<database-name>.] <table-name> } puts { <p>The DROP TABLE statement removes a table added with the <a href= "#createtable">CREATE TABLE</a> statement. The name specified is the table name. It is completely removed from the database schema and the disk file. The table can not be recovered. All indices associated |
︙ | ︙ | |||
1137 1138 1139 1140 1141 1142 1143 | puts { <p>The ON CONFLICT clause is not a separate SQL command. It is a non-standard clause that can appear in many other SQL commands. It is given its own section in this document because it is not part of standard SQL and therefore might not be familiar.</p> <p>The syntax for the ON CONFLICT clause is as shown above for | < | | | > | 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 | puts { <p>The ON CONFLICT clause is not a separate SQL command. It is a non-standard clause that can appear in many other SQL commands. It is given its own section in this document because it is not part of standard SQL and therefore might not be familiar.</p> <p>The syntax for the ON CONFLICT clause is as shown above for the CREATE TABLE and CREATE INDEX commands. For the COPY, INSERT, and UPDATE commands, the keywords "ON CONFLICT" are replaced by "OR", to make the syntax seem more natural. But the meaning of the clause is the same either way.</p> <p>The ON CONFLICT clause specifies an algorithm used to resolve constraint conflicts. There are five choices: ROLLBACK, ABORT, FAIL, IGNORE, and REPLACE. The default algorithm is ABORT. This is what they mean:</p> <dl> |
︙ | ︙ | |||
1191 1192 1193 1194 1195 1196 1197 | by the default value for that column. If the column has no default value, then the ABORT algorithm is used.</p> <p>When this conflict resolution strategy deletes rows in order to statisfy a constraint, it does not invoke delete triggers on those rows. But that may change in a future release.</p> | < < < < < < < < < < < < < < < < < < < < < < < | < < | 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 | by the default value for that column. If the column has no default value, then the ABORT algorithm is used.</p> <p>When this conflict resolution strategy deletes rows in order to statisfy a constraint, it does not invoke delete triggers on those rows. But that may change in a future release.</p> <p>The algorithm specified in the OR clause of a COPY, INSERT, or UPDATE overrides any algorithm specified in a CREATE TABLE or CREATE INDEX. If no algorithm is specified anywhere, the ABORT algorithm is used.</p> } # <p>For additional information, see # <a href="conflict.html">conflict.html</a>.</p> |
︙ | ︙ | |||
1601 1602 1603 1604 1605 1606 1607 | <p>When an object (table, index, or trigger) is dropped from the database, it leaves behind empty space. This makes the database file larger than it needs to be, but can speed up inserts. In time inserts and deletes can leave the database file structure fragmented, which slows down disk access to the database contents. The VACUUM command cleans | | | > | 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 | <p>When an object (table, index, or trigger) is dropped from the database, it leaves behind empty space. This makes the database file larger than it needs to be, but can speed up inserts. In time inserts and deletes can leave the database file structure fragmented, which slows down disk access to the database contents. The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure. It is not possible to perform the same process on an attached database file.</p> <p>This command will fail if there is an active transaction. This command has no effect on an in-memory database.</p> } Section {SQLite keywords} keywords |
︙ | ︙ |