Hugh Sasse <hgs@stripped> wrote on 10/13/2005 11:27:44 AM:
> I'm fairly new to MySQL and am getting an error messages like:
>
> ERROR 1064 (42000) at line 5: You have an error in your SQL syntax;
> check the manual that corresponds to your MySQL server version for
> the right syntax to use near '"id" int(14) unsigned NOT NULL
auto_increment,
> "forename" varchar(40) NOT NU' at line 2
> neelix hgs 18 %>
>
> So it doesn't tell me exactly where, or what the nature of the
> syntax error is (and it can't even tell me it is version 4.1.13
> which I know already). It has truncated the second line, so it's not
> that the rest is missing. My editor's syntax highlighter doesn't
> show anything awful. This is actually for lines 7 and 8 of the
> input, the first 4 lines being comments, so the numbering in the
> output is wrong.
>
> Are there any tools (like lint for C) to be more verbose and helpful
> about this?
>
> Thank you,
> Hugh
>
MySQL does not normally use " "(double quotes) as name identifiers, it
uses ` `(backticks). Change all of your " to ` to make your syntax
correct. That would mean that part of your original statement will look
like
`id` int(14) unsigned NOT NULL auto_increment,
`forename` varchar(40) NOT NULL,
In this case "line 2" did not refer to the position in the script but to
the line within the statement. Your line 1 was something like
CREATE TABLE sometablename (
which made your first column definition (the id column) appear on line 2.
Make better sense?
For more details on ` vs. " please read
http://dev.mysql.com/doc/refman/4.1/en/legal-names.html
Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine