【发布时间】:2015-02-20 19:35:57
【问题描述】:
我有以下架构的数据库表,
架构
hash VARCHAR(32) NOT NULL, regional_unit VARCHAR(64) NOT NULL, url VARCHAR(2048) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', updated_at TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW(), PRIMARY KEY (hash)
我通过 Python 使用以下语句更新:
查询
INSERT INTO urls (hash, regional_unit, url, created_at, updated_at)
VALUES (%s, %s, %s, %s, %s)
ON DUPLICATE KEY UPDATE hash=hash;
[['...', '...', '...', None, datetime.datetime(2015, 2, 20, 21, 18, 55, 910026)],
['...', '...', '...', None, datetime.datetime(2015, 2, 20, 21, 18, 55, 910046)]]
我的问题是,根据上面的陈述,字段'created_at' 没有得到更新,即它始终与'created_at' 字段具有相同的值。
编辑:
INSERT INTO urls (hash, regional_unit, url, created_at, updated_at) VALUES (%s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE hash=hash; [['...', '...', '...', datetime.datetime(2015, 2, 20, 22, 12, 57, 268424), datetime.datetime(2015, 2, 20, 22, 12, 57, 268437)], ['...', '...', '...', datetime.datetime(2015, 2, 20, 22, 12, 57, 268444), datetime.datetime(2015, 2, 20, 22, 12, 57, 268446)]]
EDIT2:
self.db_connect()
self.get_curs().executemany("""INSERT INTO urls (hash, regional_unit, url, created_at, updated_at) VALUES (%s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE hash=hash;""", [['...', '...', '...', datetime.datetime(2015, 2, 20, 22, 12, 57, 268424), datetime.datetime(2015, 2, 20, 22, 12, 57, 268437)], ['...', '...', '...', datetime.datetime(2015, 2, 20, 22, 12, 57, 268444), datetime.datetime(2015, 2, 20, 22, 12, 57, 268446)]])
self.get_conn().commit()
self.db_disconnect()
【问题讨论】:
-
created_at是您在查询中的第四个字段,出于某种原因您已将其设置为None;-) -
没有。不幸的是,这似乎不是问题。我编辑了我的问题,但仍然遇到同样的问题......
-
但是这是python代码吗?我没有看到 python 结构。并且看不到查询字符串。你混合了一切。展示你使用的真实python代码
-
好的,我也引用了我的python代码。请看看你不介意:)
-
@KimAlexander 请看看
EDIT2:)
标签: python mysql mysql-python