MySQL에서 CURRENT_TIMESTAMP를 기본값으로 사용
-
MySQL에서
CURRENT_TIMESTAMP
를DEFAULT
로 사용할 때 오류 재현 -
MySQL에서
CURRENT_TIMESTAMP
를DEFAULT
로 사용하도록 테이블 열 재정렬 -
DEFAULT 0
을 사용하여 MySQL에서CURRENT_TIMESTAMP
를DEFAULT
로 사용 -
시간 값을 사용하여 MySQL에서
CURRENT_TIMESTAMP
를DEFAULT
로 사용
이 기사에서는 CURRENT_TIMESTAMP
를 5.6.5
미만의 MySQL 버전에서 DEFAULT
로 사용하는 방법을 설명합니다. 결과적으로 MySQL 오류 1293을 방지할 수 있습니다.
우리의 방법에는 테이블 열 재정렬과 DEFAULT 0
및 시간 값 사용이 포함됩니다.
MySQL에서 CURRENT_TIMESTAMP
를 DEFAULT
로 사용할 때 오류 재현
CURRENT_TIMESTAMP
를 DEFAULT
로 사용하는 방법을 보여주기 전에 오류를 재현해 보겠습니다. 이것은 CURRENT_TIMESTAMP
를 DEFAULT
로 사용하려고 할 때 발생하는 오류입니다.
따라 하려면 다음을 수행하십시오.
-
5.6.5
미만의 MySQL 버전을 다운로드하십시오. XAMPP 1.8.0 또는 다른 수단의 일부로 이것을 얻을 수 있습니다. -
XAMPP에서 MySQL을 열고
mysql -u root -p
로 로그인합니다. MySQL 버전이5.5.2a
이므로5.6.5
미만임을 알 수 있습니다. -
just_a_test_db
라는 데이터베이스를 작성하십시오.
이제 다음 SQL을 사용하여 데이터베이스에 site_users
테이블을 만듭니다.
CREATE TABLE site_users (
user_id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
user_firstname VARCHAR(255) NOT NULL,
user_surname VARCHAR(255) NOT NULL,
user_email_address VARCHAR(255) NOT NULL UNIQUE,
user_password CHAR(40) NOT NULL,
is_active BOOL NOT NULL DEFAULT FALSE,
is_validated BOOL NOT NULL DEFAULT FALSE,
date_validated TIMESTAMP,
date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id)
) Engine=InnoDB;
다음 이미지와 같이 오류가 발생합니다.
MySQL에서 CURRENT_TIMESTAMP
를 DEFAULT
로 사용하도록 테이블 열 재정렬
SQL 쿼리에서 테이블 열을 재정렬하는 경우 CURRENT_TIMESTAMP
를 DEFAULT
로 사용할 수 있습니다. DEFAULT
로 CURRENT_TIMESTAMP
가 있는 열이 먼저 와야 합니다. TIMESTAMP
값이 있는 다른 열이 뒤에 와야 합니다.
다음 SQL에서 우리는 SQL을 재정렬했고 MySQL은 테이블을 생성합니다:
CREATE TABLE site_users (
user_id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
user_firstname VARCHAR(255) NOT NULL,
user_surname VARCHAR(255) NOT NULL,
user_email_address VARCHAR(255) NOT NULL UNIQUE,
user_password CHAR(40) NOT NULL,
is_active BOOL NOT NULL DEFAULT FALSE,
is_validated BOOL NOT NULL DEFAULT FALSE,
date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
date_validated TIMESTAMP,
PRIMARY KEY (user_id)
) Engine=InnoDB;
MySQL 콘솔의 출력:
DEFAULT 0
을 사용하여 MySQL에서 CURRENT_TIMESTAMP
를 DEFAULT
로 사용
DEFAULT 0
을 사용하는 것은 CURRENT_TIMESTAMP
를 DEFAULT
로 사용할 수 있는 또 다른 옵션입니다. 기본값이 없는 TIMESTAMP
열에 적용합니다.
SQL에서 이것은 date_validated
열입니다. 다음 SQL은 이 작업을 수행하는 방법을 보여줍니다.
CREATE TABLE site_users_2 (
user_id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
user_firstname VARCHAR(255) NOT NULL,
user_surname VARCHAR(255) NOT NULL,
user_email_address VARCHAR(255) NOT NULL UNIQUE,
user_password CHAR(40) NOT NULL,
is_active BOOL NOT NULL DEFAULT FALSE,
is_validated BOOL NOT NULL DEFAULT FALSE,
date_validated TIMESTAMP NOT NULL DEFAULT 0,
date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id)
) Engine=InnoDB;
MySQL 콘솔의 출력:
시간 값을 사용하여 MySQL에서 CURRENT_TIMESTAMP
를 DEFAULT
로 사용
TIMESTAMP
의 기본값이 시간이면 CURRENT_TIMESTAMP
를 다른 열에서 DEFAULT
로 사용할 수 있습니다. 이 시간 값은 0000-00-00 00:00:00
이며 date_validated
열에서 사용했습니다.
다음 SQL은 이를 실제로 보여줍니다.
CREATE TABLE site_users_3 (
user_id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
user_firstname VARCHAR(255) NOT NULL,
user_surname VARCHAR(255) NOT NULL,
user_email_address VARCHAR(255) NOT NULL UNIQUE,
user_password CHAR(40) NOT NULL,
is_active BOOL NOT NULL DEFAULT FALSE,
is_validated BOOL NOT NULL DEFAULT FALSE,
date_validated TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id)
) Engine=InnoDB;
MySQL 콘솔의 출력:
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn