Какую версию MySQL вы используете?
Я использую сообщество 5.1.41, а SQL для создания таблицы дает
Ошибка SQL (1075): неверное определение таблицы;может быть только один автоматический столбец, и он должен быть определен как ключ
Затем исправьте его следующим образом
create table MYTABLE
(
MY_DATE int NOT NULL AUTO_INCREMENT primary key,
NAME varchar(255) NOT NULL UNIQUE
);
Оператор вставки
INSERT INTO MYTABLE(NAME)values(jessica);
Результат
Ошибка SQL (1054): неизвестный столбец 'jessica' в 'списке полей'
, поскольку он не был заключен в кавычки.Как только это исправлено к следующему:
INSERT INTO MYTABLE(NAME)values('jessica');
Это работает.Вам не нужно предоставлять какие-либо значения для первичного ключа auto_increment, но вы можете .
Теперь давайте поговорим о причудах MySQL.Вы можете при желании включить столбец и установить значение NULL.Вы также можете присвоить ему значение SPECIFIC, и MySQL с радостью его использует, , даже если определено как auto_increment.
INSERT INTO MYTABLE(my_date,NAME)values(41,'jessica2');
INSERT INTO MYTABLE(my_date,NAME)values(null,'jessica3');
INSERT INTO MYTABLE(NAME)values('jessica4');
DELETE FROM MYTABLE where my_date=43;
INSERT INTO MYTABLE(my_date,NAME)values(3,'jessica5');
INSERT INTO MYTABLE(NAME)values('jessica?');
select * from mytable;
Когда вы специально установите число 41, следующее числостановится 42, затем 43. Это позволяет нам специально использовать 3, даже тогда, когда 43 был удален, прежде чем мы использовали конкретное число 3, следующее значение по-прежнему равно 44.
Вывод
MY_DATE NAME
41 jessica2
42 jessica3
3 jessica5
44 jessica?