Как дать действительное значение по умолчанию для основного целого числа автоматического увеличения в MySQL? - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю с MySQL 6.3 и JDBC.Я не знаю, что может быть допустимым значением для первичного ключа с автоинкрементом в запросе ниже

CREATE TABLE IF NOT EXISTS CUSTOMER (customerID INTEGER NOT NULL AUTO_INCREMENT DEFAULT '1', customerName VARCHAR(20), customerLastName VARCHAR(40)", customerPhoneNumber VARCHAR(11), customerCharge INTEGER, PRIMARY KEY (customerID));

Вместо «1» для значения по умолчанию, я пробовал «0», 1, 0 идаже null. Даже во многих источниках, которые я искал, они использовали нулевое значение по умолчанию с

NOT NULL

в запросе, но мой дает исключение.

Использование UNIQUE вместо PRIMARY KEY прекрасно работает для меня, но я спрашиваю, есть ли решение, позволяющее сохранить первичный ключ, автоинкремент и значение по умолчанию вместе.

1 Ответ

0 голосов
/ 16 ноября 2018

Значение по умолчанию не имеет смысла с AUTO_INCREMENT. AUTO_INCREMENT в основном означает, что по умолчанию используется значение +1 (или + x) самого высокого значения (которое может быть установлено в таблице).

Другими словами, никогда не используйте AUTO_INCREMENT и DEFAULT одновременно.

EDIT Я не знаю, какую версию mysql вы действительно используете, но на 5.7 это работает как положено:

CREATE TABLE IF NOT EXISTS CUSTOMER (customerID INTEGER NOT NULL AUTO_INCREMENT, customerName VARCHAR(20), customerLastName VARCHAR(40), customerPhoneNumber VARCHAR(11), customerCharge INTEGER, PRIMARY KEY (customerID));
...