auto_increment вызывает ошибки с CREATE TABLE - PullRequest
1 голос
/ 09 ноября 2008

Я использую NetBeans в качестве инструмента для Java, и у меня есть проблема. Я прочитал этот учебник , а затем попытался создать таблицу, используя этот SQL:

CREATE TABLE CUSTOMERS (
    ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FIRST_NAME VARCHAR(20),
    LAST_NAME VARCHAR(30),
    ADDRESS VARCHAR(30),
    CITY VARCHAR(30),
    STATE_ VARCHAR(30),
    ZIP VARCHAR(15),
    COUNTRY_ID INTEGER,
    PHONE VARCHAR(15),
    EMAIL_ADDRESS VARCHAR(50)
)ENGINE=INNODB;

Когда я попытался запустить его, я получил это сообщение об ошибке:

состояние sql 42X01: синтаксическая ошибка: встретил "AUTO_INCREMENT" в строке 2 колонка 29

и когда я удаляю AUTO_INCREMENT, появляется другая ошибка:

обнаружено ДВИГАТЕЛЬ = INNODB;

может кто-нибудь мне помочь? Благодаря.

Ответы [ 4 ]

5 голосов
/ 09 ноября 2008

Вы, похоже, используете синтаксис MySQL с другим ядром базы данных. Части, на которые он жаловался, являются именно специфичными для MySQL.

1 голос
/ 09 ноября 2008

мое предложение будет следующим:

CREATE TABLE CUSTOMERS 
( ID INTEGER NOT NULL auto_increment,
FIRST_NAME VARCHAR(20), 
LAST_NAME VARCHAR(30), 
ADDRESS VARCHAR(30), 
CITY VARCHAR(30), 
STATE_ VARCHAR(30), 
ZIP VARCHAR(15), 
COUNTRY_ID INTEGER, 
PHONE VARCHAR(15), 
EMAIL_ADDRESS VARCHAR(50),
PRIMARY KEY (ID));

Не знаю, для чего нужен двигатель = innodb, вы пробовали без него?

0 голосов
/ 15 апреля 2015

Прошло много времени, но если кто-то еще наткнется на это, как я, решение, которое сработало для меня вместо использования auto_increment, опишите столбец идентификатора как

ID INTEGER GENERATED ALWAYS AS IDENTITY, WHATEVER VARCHAR(20), ETC ETC...

0 голосов
/ 09 ноября 2008

Часть "engine = innodb" определяет ядро ​​базы данных, которое используется в базе данных. В MySQL вы можете указывать разные движки, такие как «InnoDB», «MyISAM» и т. Д. Они имеют разные свойства и функции - некоторые допускают сторонние индексы, некоторые нет. Некоторые имеют разные механизмы блокировки, некоторые имеют разные свойства атомарности / отката. Я не знаю деталей, но если вам нужна действительно высокопроизводительная настройка базы данных, вы должны выяснить, какой механизм лучше подходит для каждого типа создаваемой таблицы. Кроме того, весь мой опыт работы с базами данных был с MySQL, и я не уверен, что вы используете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...