program story

MySQL Alter 테이블로 인해 오류 : 잘못된 NULL 값 사용

inputbox 2020. 12. 24. 23:41
반응형

MySQL Alter 테이블로 인해 오류 : 잘못된 NULL 값 사용


내 기존 테이블 :

+-----------------+---------------+------+-----+---------+-------------------+
| Field           | Type          | Null | Key | Default | Extra             |
+-----------------+---------------+------+-----+---------+-------------------+
| creation_date   | timestamp     | YES  |     | NULL                        |

다음과 같이 테이블을 변경하고 싶었습니다.

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

하지만이 오류가 발생했습니다.

7 행의 오류 1138 (22004) : NULL 값의 잘못된 사용

문제는 YES였던 Nullable을 NOT NULL로 변경하는 것과 같습니다. 컬럼을 삭제하고 나중에 추가해야합니까?


NULL 값이있는 행이 거의없는 것 같습니다. 모든 null 값을 해당 열의 기본 날짜로 업데이트 한 다음 변경을 시도합니다.

이 시도

--update null value rows
UPDATE enterprise
SET creation_date = CURRENT_TIMESTAMP
WHERE creation_date IS NULL;


ALTER TABLE enterprise 
MODIFY creation_date TIMESTAMP NOT NULL 
DEFAULT CURRENT_TIMESTAMP;

열에 NULL이 없을 때까지이 쿼리를 사용할 수 없습니다 creation_date.

creation_date기본 날짜로 열을 업데이트 한 다음 테이블을 변경하십시오.

이렇게

UPDATE enterprise SET creation_date = CURRENT_TIMESTAMP WHERE creation_date IS NULL;

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

참조 URL : https://stackoverflow.com/questions/22971586/mysql-alter-table-causes-error-invalid-use-of-null-value

반응형