2015-12-01 3 views
1

Прямо сейчас, я создал базу данных с 10 столбцами в моей базе данных, но я не могу создать таблицу базы данных, и я получил «# 1067 - Недействительное значение по умолчанию для« primary_key » " ошибка.У меня ошибка при вводе первичного ключа в базе данных

Вот мой код SQL:

CREATE TABLE `quiz`.`user_details` (`primary_key` INT(6) UNSIGNED NOT NULL DEFAULT '1' AUTO_INCREMENT , `foreign_key` INT(6) UNSIGNED NOT NULL DEFAULT '1' AUTO_INCREMENT , `firstname` VARCHAR(20) NOT NULL , `lastname` VARCHAR(20) NOT NULL , `username` VARCHAR(20) NOT NULL , `password` VARCHAR(20) NOT NULL , `email` VARCHAR(20) NOT NULL , `phone_number` INT(10) NOT NULL , `address` CHAR(50) NOT NULL , `exam_taking` INT(3) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`primary_key`(6)), UNIQUE `foreign_key` (`foreign_key`)) ENGINE = InnoDB; 
+2

Удалите 'DEFAULT '1'' из вашего заявления. Таким образом вы не можете по умолчанию использовать поле автоматического увеличения. –

+0

удалите DEFAULT '1' и повторите попытку – teeyo

+0

и обратите внимание, что '' 1'' является строкой. чтобы быть правильным, он должен быть просто «1», делая его числовым литералом. –

ответ

0

Вы не можете иметь значения по умолчанию для авто приращения полей. Просто измените определение:

CREATE TABLE `quiz`.`user_details` 
    (`primary_key` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `foreign_key` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT , 
    `firstname` VARCHAR(20) NOT NULL , 
    `lastname` VARCHAR(20) NOT NULL , 
    `username` VARCHAR(20) NOT NULL , 
    `password` VARCHAR(20) NOT NULL , 
    `email` VARCHAR(20) NOT NULL , 
    `phone_number` INT(10) NOT NULL , 
    `address` CHAR(50) NOT NULL , 
    `exam_taking` INT(3) NOT NULL AUTO_INCREMENT , 
    PRIMARY KEY (`primary_key`), 
    UNIQUE `foreign_key` (`foreign_key`)) ENGINE = InnoDB; 

Заметим также, что имя foreign_key для атрибута, который является не внешний ключ действительно вводит в заблуждение.

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