복붙노트

[SQL] 열이 null MySQL을 수 없습니다

SQL

열이 null MySQL을 수 없습니다

다음은 내 테이블 구조

CREATE TABLE IF NOT EXISTS `physicians` (
  `physician_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` bigint(20) NOT NULL,
  `physician_gender` varchar(10) NOT NULL,
  `physician_dob_date` int(11) NOT NULL,
  `physician_dob_month` int(11) NOT NULL,
  `physician_dob_year` year(4) NOT NULL,
  `physician_profession` varchar(50) NOT NULL,
  `medical_specialty` varchar(100) NOT NULL,
  `medical_school` varchar(100) NOT NULL,
  `traning_year` year(4) NOT NULL,
  `physician_minc` varchar(20) NOT NULL,
  `physician_country` varchar(100) NOT NULL,
  `physician_state` varchar(60) NOT NULL,
  `physician_city` varchar(60) NOT NULL,
  `physician_address` varchar(100) NOT NULL,
  `physician_postal_code` varchar(10) NOT NULL,
  `physician_phone_number` varchar(20) NOT NULL,
  `physician_default_msg` longtext NOT NULL,
  PRIMARY KEY (`physician_id`),
  KEY `user_id` (`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

나는 쿼리를 실행하고 있는데 내 쿼리입니다 아래에 나 열이 null이 될 수 없습니다 보여주는

INSERT INTO `physicians` (`user_id`, `physician_gender`, `physician_dob_date`, `physician_dob_month`, `physician_dob_year`, `physician_profession`, `medical_specialty`, `medical_school`, `traning_year`, `physician_minc`, `physician_country`, `physician_state`, `physician_city`, `physician_address`, `physician_postal_code`, `physician_phone_number`, `physician_default_msg`) VALUES (4, 'Female', '5', '7', '1955', '3', '2', '1', '1965', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)

오류 - 열 'physician_minc는'null 일 수 없습니다

physician_minc는 필수 필드가 아닙니다. 이 문제를 어떻게 해결할 수 있습니까?

해결법

  1. ==============================

    1.당신은 'physician_minc'에 NOT NULL 값을 정의했습니다 :

    당신은 'physician_minc'에 NOT NULL 값을 정의했습니다 :

    `physician_minc` varchar(20) NOT NULL,
    

    당신이 널 (null)로 physician_minc 열을 만들 필요가 어떻게 it.First에 널 값을 전달할 수 있습니다 만하면 원하는 널 (null) 값을 전달할 수 있습니다.

    `physician_minc` varchar(20) NULL,
    
  2. ==============================

    2.ALTER TABLE은 변경`physician_minc``physician_minc` VARCHAR (20) NULL을 의사;

    ALTER TABLE은 변경`physician_minc``physician_minc` VARCHAR (20) NULL을 의사;

  3. ==============================

    3.당신이 당신의 테이블을 만들 때 NOT NULL로 필수로 열을 정의합니다. 대신 NULL을 필수가 아닌 모든 열을 변경해야합니다.

    당신이 당신의 테이블을 만들 때 NOT NULL로 필수로 열을 정의합니다. 대신 NULL을 필수가 아닌 모든 열을 변경해야합니다.

    당신의 삽입 코드에 대해 나는 단지 가정 처음 10 개 필드는 다음 테이블 생성 코드가 있어야합니다 데이터 삽입 올바르게에 너무 필수입니다 :

    CREATE TABLE IF NOT EXISTS `physicians` (
     `physician_id` bigint(20) NOT NULL AUTO_INCREMENT,
     `user_id` bigint(20) NOT NULL,
     `physician_gender` varchar(10) NOT NULL,
     `physician_dob_date` int(11) NOT NULL,
      `physician_dob_month` int(11) NOT NULL,
      `physician_dob_year` year(4) NOT NULL,
      `physician_profession` varchar(50) NOT NULL,
      `medical_specialty` varchar(100) NOT NULL,
      `medical_school` varchar(100) NOT NULL,
      `traning_year` year(4) NOT NULL,
      `physician_minc` varchar(20) NULL,
      `physician_country` varchar(100) NULL,
      `physician_state` varchar(60)  NULL,
      `physician_city` varchar(60) NULL,
      `physician_address` varchar(100)  NULL,
      `physician_postal_code` varchar(10)  NULL,
      `physician_phone_number` varchar(20)  NULL,
      `physician_default_msg` longtext  NULL,
      PRIMARY KEY (`physician_id`),
      KEY `user_id` (`user_id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
    
  4. ==============================

    4.NOT NULL로 physician_minc을 정의하지 마십시오

    NOT NULL로 physician_minc을 정의하지 마십시오

  5. ==============================

    5.당신의 삽입의 마지막 값은 NULL 아직 테이블 작성에 NOT NULL, 따라서 오류로 선언된다. physician_minc 필수가 아닌 경우, 그것은 physician_minc의 VARCHAR (20)의 NULL로 physician_minc VARCHAR (20) NOT NULL을 대체하여 테이블 작성에 NULL되도록,

    당신의 삽입의 마지막 값은 NULL 아직 테이블 작성에 NOT NULL, 따라서 오류로 선언된다. physician_minc 필수가 아닌 경우, 그것은 physician_minc의 VARCHAR (20)의 NULL로 physician_minc VARCHAR (20) NOT NULL을 대체하여 테이블 작성에 NULL되도록,

  6. ==============================

    6.값을 입력하지 않으려면 단순히 열 NOT NULL을이 문을 생략하지 않는, 또 그것의 값을 입력 compalsary입니다.

    값을 입력하지 않으려면 단순히 열 NOT NULL을이 문을 생략하지 않는, 또 그것의 값을 입력 compalsary입니다.

  7. ==============================

    7.이 같은 테이블을 업데이트 :

    이 같은 테이블을 업데이트 :

    ALTER TABLE `physicians` 
    CHANGE `physician_minc` `physician_minc` VARCHAR(20) CHARACTER 
    SET latin1 COLLATE latin1_swedish_ci NULL;
    
  8. from https://stackoverflow.com/questions/37698167/column-cannot-be-null-mysql by cc-by-sa and MIT license