【发布时间】:2012-01-27 15:25:48
【问题描述】:
假设我有桌子:
CREATE TABLE test (
ID INT AUTO_INCREMENT PRIMARY KEY,
InsertTime DATETIME
) ENGINE = InnoDB;
并且,通过一个 Apache/PHP 网站,作为对网络请求的响应,我继续这样做:
INSERT INTO test (InsertTime) values (NOW());
假设如果row1.ID > row2.ID 那么row1.InsertTime >= row2.InsertTime 是否安全?或者可能是由于一些不幸的因素组合(复制环境中的多 CPU 服务器,木星的卫星正确对齐等),这可能会失败?
注意:我没有任何问题。我正在编写一个新软件,我想知道我是否可以依靠ID 排序也可以按日期排序(只有NOW() 甚至会插入到该列中)。
【问题讨论】:
-
这似乎不是一个问题,而是一个讨论,所以 -> 对于 SE 程序员来说还有更多的东西吗?对于他的记录,我看不出这怎么会失败。
-
@saratis - 不明白这是怎么讨论的?这是一个具体的问题。要么 100% 保证有效,要么无效。
-
虽然我猜这里有两个不同的问题。 “是否可以根据插入顺序生成 Id”和“该顺序是否无法匹配日期时间列的顺序?”
-
如果没有第一个条件,第二个条件还能存在吗?
标签: mysql auto-increment