2016-04-13 4 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, насколько я могу судить.

PreparedStatement create=conn.prepareStatement("CREATE TABLE IF NOT EXISTS 
stud(id int unsigned not null auto_increment, 
firstname varchar(25), 
lastname varchar(25))"); 
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

Хотя все выбирают отсутствующую скобку вверх, однако сообщение об ошибке не относится к отсутствующей скобке, и когда-либо ответ и комментарий игнорируются, что находится в сообщении об ошибке.

Я верю, что ОП не копирует точный код, который в настоящее время выполняется потому, что сообщение об ошибке говорит:

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

Обратите внимание, что в сообщении об ошибке, если не существует пункт заключен в квадратных скобках, как в руководство по mysql на create table. В руководстве это указывает, что этот раздел является необязательным, но в коде реальной жизни квадратные скобки не должны быть там.

В фактическом коде нет квадратных скобок, поэтому я верю, что OP не копировал исходный код в вопрос. Мой ответ: снять квадратные скобки вокруг предложения if not exists.

+0

Интересное наблюдение: показанный код не соответствует показанной ошибке. –

+0

@JonathanLeffler yep, этот вопрос беспорядок, и ОП, по-видимому, не хочет его очищать. – Shadow

Смежные вопросы