create_time
및 update_time
을 MySQL 데이터베이스에서 고정밀 (밀리 초/초 정밀도)로 선언하려고합니다. 문제는 두 가지 요구 사항을 실행하기 위해 올바른 구문/함수를 찾을 수 없다는 것입니다. 내가 MySQL은 I가 데이터베이스에 대한 인수 server_default
를 사용할 필요가 MySQL의 방언 DATETIME(fsp=6)
(또는 TIMESTAMP(fsp=6)
) 데이터베이스 쪽에서 기본 고정밀 datetime을 선언하는 방법 mysql을 사용하는 onupdate를 사용하는 경우
- : 지금까지 파고
가정/설정 기본
- 내가 설정하는 방법을 잘 모르겠어요 여기
ON UPDATE NOW(6)
테이블 I의 버전을 박탈이다 설정입니다 :
from datetime import datetime
from sqlalchemy.dialects.mysql import DATETIME
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql import func
def create_declarative_base():
base = declarative_base()
base.__table_args__ = {
'mysql_engine': 'InnoDB',
'mysql_charset': 'utf8',
}
return base
Base = create_declarative_base()
class CreateUpdateTable(Base):
__tablename__ = 'create_update_table'
create_time = Column(DATETIME(fsp=6), server_default=func.now(), nullable=False)
update_time = Column(DATETIME(fsp=6), server_default=func.now(), onupdate=datetime.utcnow, nullable=False)
func.now()
이 create_time DATETIME(6) NOT NULL DEFAULT now()
에 직렬화하지만 나는 또한 간단한 server_default='NOW(6)'
을 시도한 ...now(6)
할 필요가 있지만, 그 (create_time TIMESTAMP(6) NOT NULL DEFAULT 'now(6)'
로 변환으로 내가 Invalid default value for 'create_time'
받기를 실행 여기서 표현식은 문자열입니다 ...)
[docs] (http://docs.sqlalchemy.org/ko/latest/core/metadata.html#sqlalchemy.schema.Column.params)의 예와 같이'text' 함수를 사용해 보셨습니까? . 서버 _default)? – Terminus