2012-10-07 77 views
1

我有两个表结构如下选择:SQL INSERT ...通过自动递增DATETIME

userid, entrydatetime, record. 

tableA - 具有主键(userid, entrydatetime)

tableB - 没有约束的设置。

我试图做一个

INSERT INTO tableA SELECT * FROM tableB

,但我得到一个错误,因为tableB具有所有相同useridentrydatetime

例如userid ='12345'和entrydatetime ='0000-00-00 00:00:00'。

我需要的tableB的主要数据是userid和记录。对于这种情况,entryDateTime对我来说不那么重要。

我该如何合并我的两个表,但仍保留我的tableA主键约束?有没有一种方法可以随机或自动增量插入的entrydatetime字段?

+0

你怎么能有两列'用户ID,entrydatetime'为** **小学? –

+0

它被称为综合主键 – venkatKA

+0

@zander不知道:D –

回答

2

您可以使用下面的查询

SET @value = CURRENT_TIMESTAMP(); 
INSERT INTO tableA 
(user_id, entrydatetime, record) 
(SELECT user_id, @value := @value + INTERVAL 1 SECOND, record from tableB); 

希望它可以帮助...

+0

嗯,没有为我工作,因为CURRENT_TIMESTAMP将仍然是我插入的所有记录相同。 – chongzixin

+0

什么是您的entrydatetime数据类型?是DATETIME还是TIMESTAMP? – Shubhansh

+0

其DATETIME。 :X – chongzixin