MySQL not null timestamp返回null

时间:2017-06-06 19:15:41

标签: mysql jdbc clojure

我有代码在远程服务器上查询MySQL 5.5.47数据库。我有一个创建的时间戳字段的间歇性问题,有时候返回为null。我想知道是否有可能存在交易问题并且时间戳字段没有立即写入。行为如下:

  • 写入DB
  • 使用生成的id键访问刚刚编写的项目
  • 看似随机创建的字段返回null

我认为这不太可能,但有可能创建和编写创建的字段是在单独的事务中完成的,并且在创建字段提交之前完成了读取项目的查询吗?使用yesql使用clojure,这是我的代码:

(let [foo (:foo input)
  errors (Validator foo)]
  (if (empty? errors)
     (let [foo (-> (db/with-connection insert-foo<! foo)
                      :generated_key
                      (find-by-id user-id))]
        (index-foo user-id foo (search/connect))
        [true nil])
     [false errors]))

这里是表的创建表:

foo | CREATE TABLE `foo` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      ......
      `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      ......
    ) ENGINE=InnoDB AUTO_INCREMENT=272 DEFAULT CHARSET=utf8 |

0 个答案:

没有答案