2013-08-19 2 views
2

Так у меня есть, таблица курсов:SQL: 1364 Поле 'XXXX' не имеет значения по умолчанию

CREATE TABLE IF NOT EXISTS `AppDziennik`.`courses` (
    `id_course` INT NOT NULL AUTO_INCREMENT , 
    `name` VARCHAR(80) NOT NULL , 
    `teachers_id_teacher` INT NOT NULL , 
    `end_date` DATE NULL , 
    `about` VARCHAR(255) NULL , 
    `start_date` DATE NULL , 
    PRIMARY KEY (`id_course`) , 
    UNIQUE INDEX `id_course_UNIQUE` (`id_course` ASC) , 
    CONSTRAINT `fk_courses_teachers1` 
    FOREIGN KEY (`teachers_id_teacher`) 
    REFERENCES `AppDziennik`.`teachers` (`id_teacher`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB 

и второй стол

CREATE TABLE IF NOT EXISTS `AppDziennik`.`teachers` (
    `id_teacher` INT NOT NULL AUTO_INCREMENT , 
    `name` VARCHAR(45) NOT NULL , 
    `surname` VARCHAR(45) NOT NULL , 
    `about` VARCHAR(255) NULL , 
    `id_class` INT NULL , 
    `rank` VARCHAR(45) NULL , 
    `logins_id_login` INT NOT NULL , 
    PRIMARY KEY (`id_teacher`) , 
    INDEX `fk_teachers_classes1_idx` (`id_class` ASC) , 
    INDEX `fk_teachers_logins1_idx` (`logins_id_login` ASC) , 
    CONSTRAINT `fk_teachers_classes1` 
    FOREIGN KEY (`id_class`) 
    REFERENCES `AppDziennik`.`classes` (`id_class`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_teachers_logins1` 
    FOREIGN KEY (`logins_id_login`) 
    REFERENCES `AppDziennik`.`logins` (`id_login`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB 

Когда я делаю что вставить

insert into appdziennik.courses (name, id_teacher, about, start_date, end_date) values ("Math",'7',"Math",'2013-08-01','2014-06-29');

Я получаю эту ошибку:

Error Code: 1364. Field 'teachers_id_teacher' doesn't have a default value

Где я ошибся? Как я мог это исправить.

+0

Имя столбца в 'courses', как представляется,' teachers_id_teacher', а не 'id_teacher' - опечатка в этом вопросе или введите код ? –

+0

Я слишком доверяю автогенератору моего MySQL WorkBench. Его вызовы столбцов, как это (teachers_id_teacher), когда я сделал. В любом случае THX – Aku

ответ

2

Если вы отправляете INSERT в таблицу courses, нет поля id_teacher (вы хотите teachers_id_teacher). Поскольку вы используете внешний ключ, этот ключ должен в таблице teachersдо вы INSERT запись в таблицу courses. Кроме того, вы должны использовать только обратные элементы (`) и одинарные кавычки (') во всех ваших операторах.

1

Вы пытаетесь вставить в таблицу курсов для столбца id_teacher значение, но не вставляете значение для столбца teacher_id_teacher. поэтому я хотел бы предложить, чтобы сделать заявление, как следует:

insert into appdziennik.courses (name, teachers_id_teacher, about, start_date, end_date) values ("Math",'7',"Math",'2013-08-01','2014-06-29'); 

Sarajog

+0

Thats make: Код ошибки: 1364. Поле 'id_teacher' не имеет значения по умолчанию – Aku