2016-04-13 16 views
1

Eclipseを使用してテーブルを作成しようとしていますが、失敗しています。 これを解決するにはどうすればよいですか?MySQLでテーブルが作成されない

PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS 
stud(id int unsigned not null auto_increment, 
    firstname varchar(25), 
    lastname varchar(25)"); 

エラー:

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 '[IF NOT EXISTS] stud(id int unsigned not null auto_increment, firstname varchar(' at line 1

+2

あなたの質問の末尾に ')'があります。 – gabe3886

+2

@ gabe3886:閉じ括弧は普通は '}'です - 閉じた括弧 ')'または閉じ括弧(ブラケットは英語、括弧より多くのアメリカ人)。しかし、あなたの欠けている ')'の診断は目立ちます。 –

+0

ありがとう@JonathanLeffler私は時々それらが混ざるので、私はいつも例を挙げようとします。私は自分のコメントを回答にして、人々が読むのがより簡単になるようにします。 – gabe3886

答えて

1

これは単に私の知る限り、クロージングparanthesisを欠いています。

3

問題は、テーブルの作成に関するクエリに最後に大かっこがないために、クエリが構文的に無効になることです。クエリは次のようになります。私の意見では

PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS 
stud(id int unsigned not null auto_increment, 
    firstname varchar(25), 
    lastname varchar(25))"); 

、あなたが並んでオープンを見てクローズできるようブラケット/ブレースおよび他の一般的な構文は、このような状況を回避するための助けを並べることができるようにコードの書式:

PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS 
stud(
     id int unsigned not null auto_increment, 
     firstname varchar(25), 
     lastname varchar(25) 
    )"); 

ただし、コーディングのガイドラインによっては、これを行うことができない場合があります。

2

誰もが見つからない括弧を選択していますが、エラーメッセージは括弧が欠けているとは関係なく、答えとコメントはエラーメッセージの内容を無視します。

私はOPは、エラーメッセージが言うので、実行されている正確なコードをコピーしなかったことを信じて

:存在していない場合は、エラーメッセージに句をのように角括弧で囲まれていること

...check the manual that corresponds to your MySQL server version for the right syntax to use near '[IF NOT EXISTS]

注意をcreate tableのmysqlマニュアル。このマニュアルでは、この句はオプションであることを示していますが、現実のコードでは角括弧はそこにあってはいけません。

実際のコードには角カッコがありません。このため、OPが元のコードを問題にコピーしていないと考えています。私の答えは:if not exists句の角括弧を削除します。

+0

興味深い観察:示されているコードは、表示されているエラーと一致しません。 –

+0

@JonathanLefflerうん、この質問は混乱し、OPは明らかにそれをきれいにするつもりはない。 – Shadow

関連する問題