error 1452 and 1364 field "subject_id" doesn't have a default value
-- MySQL Script generated by MySQL Workbench
-- Tue Apr 28 20:52:04 2020
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema Shedule
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema Shedule
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Shedule` DEFAULT CHARACTER SET utf8 ;
USE `Shedule` ;
-- -----------------------------------------------------
-- Table `Shedule`.`kafedra`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`kafedra` (
`id_kafedra` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id_kafedra`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`stud_group`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`stud_group` (
`stud_group_id` INT NOT NULL AUTO_INCREMENT,
`name_group` NVARCHAR(20) NOT NULL,
`fakultet_name` VARCHAR(45) NOT NULL,
`form_education` VARCHAR(45) NOT NULL,
`kafedra_id` INT NOT NULL,
PRIMARY KEY (`stud_group_id`),
INDEX `fk_stud_group_kafedra1_idx` (`kafedra_id` ASC) VISIBLE,
CONSTRAINT `fk_stud_group_kafedra`
FOREIGN KEY (`kafedra_id`)
REFERENCES `Shedule`.`kafedra` (`id_kafedra`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`subject`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`subject` (
`subject_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`subject_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`audience`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`audience` (
`audience_id` INT NOT NULL AUTO_INCREMENT,
`num_audience` INT NOT NULL,
PRIMARY KEY (`audience_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`korpus`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`korpus` (
`korpus_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`address` NVARCHAR(50) NOT NULL,
PRIMARY KEY (`korpus_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`para`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`para` (
`id_para` INT NOT NULL AUTO_INCREMENT,
`para` INT NOT NULL,
`para_begin` VARCHAR(45) NOT NULL,
`para_end` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id_para`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`customer`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`customer` (
`customer_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`surname` VARCHAR(45) NOT NULL,
`second_name` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
PRIMARY KEY (`customer_id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`teacher`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`teacher` (
`teacher_id` INT NOT NULL AUTO_INCREMENT,
`customer_id` INT NOT NULL,
`academic_position` VARCHAR(45) NOT NULL,
PRIMARY KEY (`teacher_id`),
INDEX `fk_teacher_user1_idx` (`customer_id` ASC) VISIBLE,
CONSTRAINT `teacher`
FOREIGN KEY (`customer_id`)
REFERENCES `Shedule`.`customer` (`customer_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`shedule`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`shedule` (
`subject_id` INT NOT NULL,
`teacher_id` INT NOT NULL,
`para_id` INT NOT NULL,
`week` VARCHAR(45) NOT NULL,
`subject_type` VARCHAR(45) NOT NULL,
`audience` INT NOT NULL,
`korpus_id` INT NOT NULL,
`stud_group_id` INT NOT NULL,
`day_of_week` VARCHAR(45) NOT NULL,
INDEX `fk_shedule_audience1_idx` (`audience` ASC) VISIBLE,
INDEX `fk_shedule_korpus1_idx` (`korpus_id` ASC) VISIBLE,
INDEX `fk_shedule_para1_idx` (`para_id` ASC) VISIBLE,
INDEX `fk_shedule_stud_group1_idx` (`stud_group_id` ASC) VISIBLE,
INDEX `fk_shedule_subject1_idx` (`subject_id` ASC) VISIBLE,
INDEX `fk_shedule_teacher1_idx` (`teacher_id` ASC) VISIBLE,
CONSTRAINT `fk_shedule_audience`
FOREIGN KEY (`audience`)
REFERENCES `Shedule`.`audience` (`audience_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_shedule_korpus`
FOREIGN KEY (`korpus_id`)
REFERENCES `Shedule`.`korpus` (`korpus_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_shedule_para`
FOREIGN KEY (`para_id`)
REFERENCES `Shedule`.`para` (`id_para`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_shedule_stud_group`
FOREIGN KEY (`stud_group_id`)
REFERENCES `Shedule`.`stud_group` (`stud_group_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_shedule_subject`
FOREIGN KEY (`subject_id`)
REFERENCES `Shedule`.`subject` (`subject_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_shedule_teacher`
FOREIGN KEY (`teacher_id`)
REFERENCES `Shedule`.`teacher` (`teacher_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Shedule`.`student`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Shedule`.`student` (
`customer_id` INT NOT NULL,
`student_id` INT NOT NULL,
`stud_group_id` INT NOT NULL,
INDEX `fk_student_stud_group1_idx` (`stud_group_id` ASC) VISIBLE,
INDEX `fk_student_customer1_idx` (`customer_id` ASC) VISIBLE,
CONSTRAINT `fk_student_stud_group`
FOREIGN KEY (`stud_group_id`)
REFERENCES `Shedule`.`stud_group` (`stud_group_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_student_customer`
FOREIGN KEY (`customer_id`)
REFERENCES `Shedule`.`customer` (`customer_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
-- -----------------------------------------------------
-- Data for table `Shedule`.`shedule`
-- -----------------------------------------------------
START TRANSACTION;
USE `Shedule`;
INSERT INTO `Shedule`.`shedule` (`subject_id`, `teacher_id`, `para_id`, `week`, `subject_type`, `audience`, `korpus_id`, `stud_group_id`, `day_of_week`) VALUES (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);
COMMIT;
-- -----------------------------------------------------
-- Data for table `Shedule`.`student`
-- -----------------------------------------------------
START TRANSACTION;
USE `Shedule`;
INSERT INTO `Shedule`.`student` (`customer_id`, `student_id`, `stud_group_id`) VALUES (DEFAULT, DEFAULT, DEFAULT);
COMMIT;
Не удается наполнить таблицы данными. Две ошибки 1452
и 1364.
Ответы (1 шт):
Автор решения: betplix
→ Ссылка
Ответ на вопрос раскрыт в тексте ошибки "field “subject_id” doesn't have a default value" Поле subject_id не имеет дефолтного значения Уберите из запроса INSERT INTO поле subject_id и из VALUES значение его DEFAULT Данное поле заполниться автоматически, т.к. оно AUTO_INCREMENT