@@ -3903,8 +3903,8 @@ This can be used to skip over extra columns in the text file,
3903
3903
or update columns based on expressions of the read data...
3904
3904
@item
3905
3905
@code{LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name}
3906
- This would cause any errors and warnings to be logged into the err_table_name
3907
- table. That table would have a structure like:
3906
+ This would cause any errors and warnings to be logged into the
3907
+ @code{err_table_name} table. That table would have a structure like:
3908
3908
3909
3909
@example
3910
3910
line_number - line number in data file
@@ -3913,9 +3913,10 @@ and maybe
3913
3913
data_line - the line from the data file
3914
3914
@end example
3915
3915
@item
3916
- Add true @code{VARCHAR} support (There is already support for this in MyISAM).
3916
+ Add true @code{VARCHAR} support (There is already support for this in
3917
+ @code{MyISAM}).
3917
3918
@item
3918
- Automatic output from @code{mysql} to netscape .
3919
+ Automatic output from @code{mysql} to Netscape .
3919
3920
@item
3920
3921
@code{LOCK DATABASES}. (with various options)
3921
3922
@item
@@ -6954,18 +6955,19 @@ version 4.0;
6954
6955
@itemize @bullet
6955
6956
@item
6956
6957
@code{LOCATE()} and @code{INSTR()} are case sensitive if neither
6957
- argument is a binary string. binary strings.
6958
+ argument is a binary string.
6958
6959
@item
6959
- @code{INSERT INTO ... SELECT} had in 3.23 always @code{IGNORE} enabled.
6960
- In 4.0.1 MySQL will stop (and possible rollback) in case of an error if you
6960
+ In 3.23,
6961
+ @code{INSERT INTO ... SELECT} always had @code{IGNORE} enabled.
6962
+ In 4.0.1, MySQL will stop (and possibly roll back) in case of an error if you
6961
6963
don't specify @code{IGNORE}.
6962
6964
@item
6963
6965
@file{safe_mysqld} is renamed to @file{mysqld_safe}.
6964
6966
@item
6965
6967
The old C API functions @code{mysql_drop_db}, @code{mysql_create_db} and
6966
- @code{mysql_connect} are not supported anymore, unless one compiles
6968
+ @code{mysql_connect} are not supported anymore, unless you compile
6967
6969
MySQL with @code{CFLAGS=-DUSE_OLD_FUNCTIONS}. Instead of doing this,
6968
- one should change the client to use the new 4.0 API.
6970
+ it is preferable to change the client to use the new 4.0 API.
6969
6971
@item
6970
6972
In the @code{MYSQL_FIELD} structure, @code{length} and @code{max_length} has
6971
6973
changed from @code{unsigned int} to @code{unsigned long}. This should not
@@ -6989,7 +6991,7 @@ Format of @code{SHOW OPEN TABLE} has changed.
6989
6991
Multithreaded clients should use @code{mysql_thread_init()} and
6990
6992
@code{mysql_thread_end()}. @xref{Threaded clients}.
6991
6993
@item
6992
- If you want to recompile the perl DBD-MySQL module, you must get
6994
+ If you want to recompile the Perl DBD::mysql module, you must get
6993
6995
Msql-Mysql-modules version 1.2218 or newer, because the older DBD modules
6994
6996
used the deprecated @code{drop_db()} call.
6995
6997
@item
@@ -8346,15 +8348,15 @@ we may find some way to work around this problem.)
8346
8348
8347
8349
@item
8348
8350
@code{DROP TABLE} on a table that is in use by a @code{MERGE} table will
8349
- not work on windows becasue @code{MERGE} handler does the table mapping
8351
+ not work on Windows because @code{MERGE} handler does the table mapping
8350
8352
hidden from the upper layer of MySQL. Because Windows doesn't allow you
8351
8353
to drop files that are open, you first must flush all @code{MERGE}
8352
8354
tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before
8353
8355
dropping the table. We will fix this at the same time we introduce
8354
8356
@code{VIEW}s.
8355
8357
@item
8356
8358
@code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives in
8357
- @code{CREATE TABLE} is ignored on windows , because windows doesn't support
8359
+ @code{CREATE TABLE} is ignored on Windows , because Windows doesn't support
8358
8360
symbolic links.
8359
8361
@end table
8360
8362
@@ -34740,20 +34742,20 @@ corrupt the table. This will be fixed in MySQL 4.0.x.
34740
34742
@item
34741
34743
Creation of a table of type @code{MERGE} doesn't check if the underlying
34742
34744
tables are of compatible types. If you use @code{MERGE} tables in this
34743
- fasion you are very likely to run into strange problems.
34745
+ fashion, you are very likely to run into strange problems.
34744
34746
@item
34745
34747
If you use @code{ALTER TABLE} to first add an @code{UNIQUE} index to a
34746
34748
table used in a @code{MERGE} table and then use @code{ALTER TABLE} to
34747
34749
add a normal index on the @code{MERGE} table, the key order will be
34748
- different for the tables if there was an old not -unique key in the
34750
+ different for the tables if there was an old non -unique key in the
34749
34751
table. This is because @code{ALTER TABLE} puts @code{UNIQUE} keys before
34750
34752
normal keys to be able to detect duplicate keys as early as possible.
34751
34753
@item
34752
34754
The range optimizer can't yet use @code{MERGE} table efficiently and may
34753
- sometimes produce not optimal joins. This will be fixed in MySQL 4.0.x.
34755
+ sometimes produce non- optimal joins. This will be fixed in MySQL 4.0.x.
34754
34756
@item
34755
34757
@code{DROP TABLE} on a table that is in use by a @code{MERGE} table will
34756
- not work on windows becasue @code{MERGE} handler does the table mapping
34758
+ not work on Windows because the @code{MERGE} handler does the table mapping
34757
34759
hidden from the upper layer of MySQL. Because Windows doesn't allow you
34758
34760
to drop files that are open, you first must flush all @code{MERGE}
34759
34761
tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before
@@ -34766,12 +34768,12 @@ dropping the table. We will fix this at the same time we introduce
34766
34768
34767
34769
@cindex tables, ISAM
34768
34770
34769
- You can also use the deprecated ISAM table type. This will disappear
34771
+ You can also use the deprecated @code{ ISAM} table type. This will disappear
34770
34772
rather soon (probably in MySQL 4.1) because @code{MyISAM} is a better
34771
- implementation of the same thing. ISAM uses a @code{B-tree} index. The
34773
+ implementation of the same thing. @code{ ISAM} uses a @code{B-tree} index. The
34772
34774
index is stored in a file with the @code{.ISM} extension, and the data
34773
34775
is stored in a file with the @code{.ISD} extension. You can
34774
- check/repair ISAM tables with the @code{isamchk} utility. @xref{Crash
34776
+ check/repair @code{ ISAM} tables with the @code{isamchk} utility. @xref{Crash
34775
34777
recovery}.
34776
34778
34777
34779
@code{ISAM} has the following features/properties:
@@ -34789,7 +34791,7 @@ tables. @xref{MyISAM}. The major differences compared to @code{MyISAM}
34789
34791
tables are:
34790
34792
34791
34793
@itemize @bullet
34792
- @item ISAM tables are not binary portable across OS/Platforms.
34794
+ @item @code{ ISAM} tables are not binary portable across OS/Platforms.
34793
34795
@item Can't handle tables > 4G.
34794
34796
@item Only support prefix compression on strings.
34795
34797
@item Smaller key limits.
@@ -34805,7 +34807,7 @@ TABLE} statement:
34805
34807
mysql> ALTER TABLE tbl_name TYPE = MYISAM;
34806
34808
@end example
34807
34809
34808
- The embedded MySQL versions doesn't support ISAM tables.
34810
+ The embedded MySQL versions doesn't support @code{ ISAM} tables.
34809
34811
34810
34812
@node HEAP, InnoDB, ISAM, Table types
34811
34813
@section HEAP Tables
@@ -34816,7 +34818,7 @@ The embedded MySQL versions doesn't support ISAM tables.
34816
34818
makes them very fast, but if MySQL crashes you will lose all
34817
34819
data stored in them. @code{HEAP} is very useful for temporary tables!
34818
34820
34819
- The MySQL internal HEAP tables use 100% dynamic hashing
34821
+ The MySQL internal @code{ HEAP} tables use 100% dynamic hashing
34820
34822
without overflow areas. There is no extra space needed for free lists.
34821
34823
@code{HEAP} tables also don't have problems with delete + inserts, which
34822
34824
normally is common with hashed tables:
@@ -35331,6 +35333,12 @@ your job again, rather than wait for millions of disk i/os to complete.
35331
35333
InnoDB version 3.23.44 features foreign key constraints. InnoDB is the
35332
35334
first MySQL table type which allows you to define foreign key
35333
35335
constraints to guard the integrity of your data.
35336
+
35337
+ The syntax of a foreign key constraint definition in InnoDB:
35338
+ @example
35339
+ FOREIGN KEY (index_col_name, ...) REFERENCES table_name (index_col_name, ...)
35340
+ @end example
35341
+
35334
35342
An example:
35335
35343
35336
35344
@example
@@ -35351,6 +35359,8 @@ The size and the signedness of integer types has to be same.
35351
35359
35352
35360
When doing foreign key checks InnoDB sets shared row
35353
35361
level locks on child or parent records it has to look at.
35362
+ InnoDB checks foreign key constraints immediately: the check
35363
+ is not deferred to transaction commit.
35354
35364
35355
35365
InnoDB allows you to drop any table even though that
35356
35366
would break the foreign key constraints which reference
@@ -44837,7 +44847,7 @@ Some features:
44837
44847
@item Import wizard to import structure and data from MS Access, MS Excel, Dbase, FoxPro, Paradox, and ODBC Databases.
44838
44848
44839
44849
@item @uref{http://www.mysql.com/Downloads/Contrib/KMYENG113.zip}
44840
- An administrator GUI for MySQL. Works only on windows , no source.
44850
+ An administrator GUI for MySQL. Works only on Windows , no source.
44841
44851
Available in English and Japanese. By Mitunobu Kaneko.
44842
44852
Home page: @uref{http://sql.jnts.ne.jp/}
44843
44853
@end itemize
@@ -45856,11 +45866,11 @@ able to use boolean fulltext search}.
45856
45866
@code{LOCATE()} and @code{INSTR()} are case sensitive if neither
45857
45867
argument is a binary string.
45858
45868
@item
45859
- Fixed core dump bug in @code{UPDATE ... ORDER BY }.
45869
+ Fixed core dump bug in @code{UPDATE ... ORDER BY}.
45860
45870
@item
45861
- Changed @code{INSERT INTO .. SELECT} to by default stop on errors.
45871
+ Changed @code{INSERT INTO .. SELECT} to stop on errors by default .
45862
45872
@item
45863
- Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on windows .
45873
+ Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on Windows .
45864
45874
@item
45865
45875
Added boolean fulltext search code. It should be considered early alpha.
45866
45876
@item
@@ -45892,7 +45902,7 @@ be able to handle these.
45892
45902
Secure connections (with SSL).
45893
45903
@item
45894
45904
Unsigned @code{BIGINT} constants now work. @code{MIN()} and @code{MAX()}
45895
- now handles signed and unsigned @code{BIGINT} numbers correctly.
45905
+ now handle signed and unsigned @code{BIGINT} numbers correctly.
45896
45906
@item
45897
45907
New character set @code{latin_de} which provides correct German sorting.
45898
45908
@item
@@ -45901,7 +45911,7 @@ functions. One bonus is that @code{DELETE FROM table_name} now returns
45901
45911
the number of deleted rows.
45902
45912
@item
45903
45913
@code{DROP DATABASE} now executes a @code{DROP TABLE} on all tables in
45904
- the database, which fixes a problem with InnoDB tables.
45914
+ the database, which fixes a problem with @code{ InnoDB} tables.
45905
45915
@item
45906
45916
Added support for @code{UNION}.
45907
45917
@item
@@ -46127,7 +46137,7 @@ Fixed problem with sjis character strings used within quoted table names.
46127
46137
Fixed coredump when using @code{CREATE ... FULLTEXT} keys with other table
46128
46138
handlers than MyISAM.
46129
46139
@item
46130
- Don't use @code{signal()} on windows because this appears to not be
46140
+ Don't use @code{signal()} on Windows because this appears to not be
46131
46141
100 % reliable.
46132
46142
@item
46133
46143
Fixed bug when doing @code{WHERE column_name=NULL} on an indexed column
@@ -46278,7 +46288,7 @@ Don't force everything to lower cases on Windows. (To fix problem
46278
46288
with Windows and @code{ALTER TABLE}). Now @code{--lower_case_names}
46279
46289
also works on Unix.
46280
46290
@item
46281
- Fixed that automatic rollback that is done when thread end doesn't lock
46291
+ Fixed that automatic rollback is done when thread end doesn't lock
46282
46292
other threads.
46283
46293
@end itemize
46284
46294
@@ -52222,7 +52232,7 @@ Pros for row locking:
52222
52232
@item
52223
52233
Fewer lock conflicts when accessing different rows in many threads.
52224
52234
@item
52225
- Less changes for rollbacks.
52235
+ Fewer changes for rollbacks.
52226
52236
@item
52227
52237
Makes it possible to lock a single row a long time.
52228
52238
@end itemize
0 commit comments