SELECT查询INTO临时表,ON DUPLICATE条件

时间:2016-01-12 20:43:52

标签: sql select

我正在尝试将数据从一个表(A)转移到另一个表(B)。表A在转移到B时抛出错误,因为存在违反表B中的复合主键的记录.B中的主键由除日期很重要的DATETIME字段之外无法修改的字段组成。不是时候。

在我正在工作的范围内我只能控制表A中的select语句而不是表B中的插入。我也无法更改任何一个表的数据或数据类型配置。

因此,使用SELECT语句,如何从表A中获取数据,检查特定字段(int)中的重复项,并在这些重复实例中将datetime字段增加一分钟以允许两个记录插入表B.

1 个答案:

答案 0 :(得分:0)

这将返回表A中仅存在于表B中的记录,因此您的插入将起作用。当然,在不知道字段(或任何有关数据库结构的内容)的情况下,我只能使用模拟字段名称。如果您仍然遇到问题,请使用所需的字段名称编辑您的问题,然后我会更新我的回答。这非常简单,所以你应该能够解决它,即使它需要修改以下查询:

SELECT NeededFields
FROM TableA
LEFT OUTER JOIN TableB
    ON TableA.PrimaryKeyField = TableB.PrimaryKeyField
WHERE TableB.PrimaryKeyField IS NULL

当你完成后,你应该阅读外部联接。它们派上用场了!