如何多次将数据插入具有自动递增now()函数的MySQL?

时间:2014-09-06 12:11:55

标签: mysql sql datetime

这里的表格如下:

CREATE TABLE my_table
(
  id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  user_id VARCHAR(5),
  time_value DATETIME
) ENGINE = MyISAM;

INSERT INTO my_table(user_id,time_value)
VALUES
  (100, NOW()),
  (200, NOW()),
  (300, NOW()),
  (400, NOW()),
  (500, NOW());

我的输出:

id  user_id time_value  
1   100     2014-09-06 23:58:58      
2   200     2014-09-06 23:58:58    
3   300     2014-09-06 23:58:58      
4   400     2014-09-06 23:58:58      
5   500     2014-09-06 23:58:58   

我应该回答这个问题

需要输出:

id  user_id time_value  
1   100     2014-09-06 23:58:58      
2   200     2014-09-06 23:59:58    
3   300     2014-09-07 00:00:58      
4   400     2014-09-07 00:01:58      
5   500     2014-09-07 00:02:58 

可以在MySQL DATETIME函数中使用吗?如果可能的话, 基于time_value在此表中插入行值?

1 个答案:

答案 0 :(得分:0)

documentation for the NOW() function部分地说

  

NOW()返回一个常量时间,表示时间   声明开始执行。 (在存储的函数或触发器中,   NOW()返回函数或触发语句的时间   开始执行。)这与SYSDATE()的行为不同   返回它执行的确切时间。

这意味着如果调用在单个查询中多次使用NOW()函数,它们都会返回完全相同的值。如果要使用单个查询插入多个不同的时间戳,则必须明确指定这些差异。 @Prix为您提供了一个很好的方法。