MySQL, 3rd Edition (05-1 printing) - Errata

This document lists the known errors for the book:

MySQL, 3rd Edition (05-1 printing)
Paul DuBois
Sams
2005
ISBN 0-672-32673-6
[book information]
Number of items: 36
Date of most recently reported item: 2012-04-15

Sort by: [page number] [most recent errata first]
Date 2006-09-10
Page 38, last line
Reported by Jim Kovacs
Description "where CC, YY, MM, and DD represent the century, year within the century, month, and date" should be "where CC, YY, MM, and DD represent the century, year within the century, month, and day of the month".

Date 2007-08-09
Page 60, 5th paragraph
Description The paragraph says that HFS+ uses case-sensitive filenames. It should say case-insensitive.

Date 2012-04-15
Page 83ff
Reported by Abby Byrnes
Description On pages 83 and following, queries use "range" as a column alias. But in more recent versions of MySQL, RANGE is a reserved word and the queries produce an error. To avoid this, either use a different nonreserved alias, such as "span", or quote "range" as an identifier, e.g., with backquotes: `range`

Date 2005-12-28
Page 106, first bullet item
Description "IGNORE_SPACES" should be "IGNORE_SPACE".

Date 2006-09-16
Page 109
Reported by Jim Kovacs
Description "As MySQL 4.1.1, the..." should be "As of MySQL 4.1.1, the..."

Date 2007-05-08
Page 10
Description This page indicates that I moved older (pre-MySQL 4.1) material into an addendum available at my Web site. I never got around to finishing this, and in fact, only one person ever asked about it.

Date 2005-07-12
Page 129, end of second paragraph
Reported by M. Porcelijn
Description "DROP TABLE IF NOT EXISTS" should be "DROP TABLE IF EXISTS" and "CREATE TABLE without IF EXISTS" should be "CREATE TABLE without IF NOT EXISTS".

Date 2005-12-28
Page 129, last paragraph
Description "but you drop it explicitly" should be "but you can drop it explicitly".

Date 2010-10-06
Page 156, 2nd para from bottom
Reported by Richard Cook
Description "The following discussion in phrased" should be "The following discussion is phrased".

Date 2006-02-11
Page 157-158, code listings from bottom of page 157 through page
Description Join processing has been changed as of MySQL 5.0.12. One of the changes is to reduce the precedence of the comma join operator relative to other inner join operators such as INNER JOIN, JOIN, and CROSS JOIN. As a result of this change, the query developed on pp. 157-158 fails with the error "ERROR 1054 (42S22): Unknown column 'student.student_id' in 'on clause'." To correct the problem, change the FROM clause at the bottom of page 157 from this:
FROM student, grade_event
To this:
FROM student INNER JOIN grade_event
The same change should be made to the two FROM clauses on page 158.

Date 2006-05-29
Page 197, second bullet
Reported by Larry Prall
Description Phrase searching no longer (as of MySQL 5.0.3) requires the search phrase to include punctuation. To match a phrase, specify the words of the phrase in double quotes. Matches occur for records that contain the same words in the same order as listed in the phrase.

Date 2005-06-21
Page 226
Reported by Paul G. Wagner
Description In Table 3.6, the lower signed bound for INT should be -2147483648, not -2147683648.

Date 2008-07-24
Page 233, 2nd-to-last paragraph
Reported by Helen Schuilenburg
Description This paragraph says that BINARY(20) holds 20 characters and CHAR(20) holds 20 bytes. It should be reversed: BINARY(20) holds 20 bytes and CHAR(20) holds 20 characters.

Date 2008-02-15
Page 244, paragraph following example
Reported by Huu Da Tran
Description 'fred' and 'marcia' should be replaced by 'lamp' and 'stool' respectively.

Date 2005-12-28
Page 246, second and third paragraphs following title
Description Both instances of "COLLATION" should be "COLLATE".

Date 2010-08-19
Page 269, 4th bullet, 2nd line
Reported by Jim Kovacs
Description "to not reuse" should be "do not reuse"

Date 2010-08-19
Page 271, 1st code listing
Reported by Jim Kovacs
Description The ALTER TABLE statement is missing PRIMARY KEY for the ADD clause. It should say:

ADD i INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

Date 2010-08-19
Page 272, 2nd para from bottom
Reported by Jim Kovacs
Description "to server as a counter identifier" should be "to serve as a counter identifier".

Date 2007-05-31
Page 300, middle of page
Reported by Liz Becker
Description
SELECT t1.i1, t2.12, t3.i3
FROM t1, t2, t3
WHERE t1.i1 = t2.i2 AND t2.i1 = t3.i3;
should read:
SELECT t1.i1, t2.12, t3.i3
FROM t1, t2, t3
WHERE t1.i1 = t2.i2 AND t2.i2 = t3.i3;
(after the AND, t2.i1 should be t2.i2)

Date 2005-12-28
Page 321, final bullet
Description "DELAYED_KEY_WRITE" should be "DELAY_KEY_WRITE".

Date 2007-07-14
Page 469, second to last paragraph
Description "The WHERE 0 clause is true for all rows" should be "The WHERE 0 clause is false for all rows".

Date 2006-02-11
Page 555
Description This is the same problem as for pp. 157-158, and the correction is the same. In the SELECT statement, change the beginning of the FROM clause from:
FROM student, grade_event
To this:
FROM student INNER JOIN grade_event

Date 2007-06-22
Page 557, 7th line from the end
Description This line:
$sth =& $del_sth;
Should be:
$sth =& $sth_del;

Date 2007-10-23
Page 621, middle of page
Description "To remove the MySQL server from the list of services, start it if it is running..." should be "To remove the MySQL server from the list of services, stop it if it is running..."

Date 2005-12-28
Page 681, first bullet
Description "indexes on its column" should be "indexes on its columns".

Date 2005-12-28
Page 794, third bullet
Description "that begins with mysql.essential" should be "that begins with mysql-essential".

Date 2005-12-28
Page 799, second bulllet
Description Precision is not "the width of the integer component", it's "the number of significant digits".

Date 2008-02-29
Page 851
Description The description for the SPACE() function says "empty set"; it should say "empty string".

Date 2008-01-12
Page 873, entry for DES_ENCRYPT()
Description The entry for DES_ENCRYPT() shows three syntax formats, but the second and third erroneously give the function name as DES_DECRYPT().

Date 2005-12-28
Page 905, third bullet
Description The maximum value for myisam_data_pointer_size is 7, not 8.

Date 2005-12-28
Page 948, second bullet
Description MyISAM can use internal row pointers 2 to 7 bytes wide, not 2 to 8 bytes wide.

Date 2008-01-25
Page 954, first line
Description "an error occurs if the OR REPLACE clause is given" should be "an error occurs unless the OR REPLACE clause is given" (change "if" to "unless").

Date 2008-05-03
Page 957, DROP TRIGGER
Description The syntax for DROP TRIGGER should say db_name.trigger_name, not tbl_name.trigger_name. (The statement should name a database, not a table.)

Date 2005-12-28
Page 960, middle of page
Description EXPLAIN must execute a subquery only if it occurs in the FROM clause.

Date 2005-12-28
Page 967
Description For the second INSERT syntax (INSERT ... SELECT), DELAYED shouldn't be used. Make this change on the 5th line following the "INSERT" heading:

From:

INSERT [DELAYED | LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO]
To:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO]

Date 2009-03-28
Page 1086
Reported by Richard Cook
Description mysqldump produces CREATE DATABASE IF NOT EXISTS statements, not CREATE DATABASE IF EXISTS statements.

This document is maintained by Paul DuBois. Please report any errors you find in the book that are not already listed here.