SQLAlchemy无法将时间戳插入MSSQL

时间:2017-01-16 18:23:39

标签: python sql-server datetime sqlalchemy luigi

  

sqlalchemy.exc.IntegrityError:(pyodbc.IntegrityError)('23000',   '[23000] [FreeTDS] [SQL Server]无法在a中插入显式值   时间戳列。将INSERT与列列表一起使用以排除   timestamp列,或将D EFAULT插入timestamp列。   (273)(SQLExecDirectW)')[SQL:'INSERT INTO task_events(task_id,   event_name,ts)OUTP UT inserted.id VALUES(?,?,?)'] [参数:   (54,'RUNNING',datetime.datetime(2017,1,16,18,5,55,595066))]

错误似乎与此有关:

You can't insert explicit values into a timestamp column. Timestamp values are unique binary numbers that are automatically generated.

SQLAlchemy不知道吗?是否有一些关键\设置让SQLAlchemy知道现在插入时间戳?

This似乎是处理SQLAlchemy的luigi代码。

PS。这里的问题是luigi正在使用SQLAlchemy,我不想修改luigi的代码,但如果你能在luigi方面提出一个简单的解决方案,那也可以。

1 个答案:

答案 0 :(得分:0)

所以,感谢这些优秀的绅士@LaugingVergil和@HaleemurAli我刚刚决定在我的dockerfile中添加另一个sed hack ...

我在RUN sed -i 's/TIMESTAMP/DateTime/g' /usr/lib/python3.4/site-packages/luigi/db_task_history.py

之前做CMD /usr/bin/luigid