itsource

mariadb sql default unix_mari

mycopycode 2022. 11. 15. 21:43
반응형

mariadb sql default unix_mari

테이블의 열을 타임스탬프 유형에서 정수(unix)로 변경하는 데 문제가 있습니다.mysql 아래의 두 쿼리에 대해 오류 1064: "... SQL 구문의 오류.."로 실행하지 마십시오.sql 에디터(MYSql WORBENCH)는 디폴트 직후에 UNIX_TIMESTamp 펑크를 빨간색으로 강조 표시하여 다음과 같이 표시합니다."UNIX_TIMESTAMP" is not valid at this position, expecting: DATE, TIMESTAMP, TIME, INT number, LONG number, UNLONGLONG number, ...

내가 여기서 뭘 잘못하고 있는 거지?

ALTER TABLE `lamourka`.`profile` CHANGE `updated_at` `updated_at` 
int(11) NOT NULL DEFAULT UNIX_TIMESTAMP() ON UPDATE UNIX_TIMESTAMP()

ALTER TABLE `lamourka`.`profile` MODIFY COLUMN `updated_at` 
    int(11) NOT NULL DEFAULT UNIX_TIMESTAMP() ON UPDATE UNIX_TIMESTAMP()

사진

MariaDB를 사용하고 있습니다.SELECT VERSION(): 10.3.9-MariaDB-1:10.3.9+Maria~바이오닉

MySQL에서는 함수를 사용하여 기본값을 설정할 수 없습니다.

를 사용하는 것을 추천합니다.TIMESTAMP데이터형다음 명령을 사용하여 초당 값을 검색할 수 있습니다.UNIX_TIMESTAMP().

DB Fielen 데모:

CREATE TABLE mytable (id int, updated_at date);
ALTER TABLE mytable MODIFY column updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

INSERT INTO mytable(id) values(1);
SELECT id, UNIX_TIMESTAMP(updated_at) updated_at FROM mytable;

| id  | updated_at |
| --- | ---------- |
| 1   | 1570695109 |

다른 옵션은 열 데이터 유형을 정수로 유지하되 수동으로 호출하는 것입니다.UNIX_TIMESTAMP()각 인서트에 있습니다.

언급URL : https://stackoverflow.com/questions/58318066/mariadb-sql-default-unix-timestamp

반응형