0

所以有些背景。我有一对存储潜在员工的“应用程序信息”的表。

主表使用 PHP/SQL 显示,并且有一个链接可以从表中“删除”应用程序。

INSERT INTO ResultsOLD SELECT * FROM Results WHERE Results.id = '$IDin'

DELETE FROM Results WHERE Results.id = '$IDin' AND Timestamp = '$INts'

上述条目将数据复制到备份表(旧应用存储)并从主表中删除条目。

我现在正在尝试编写一个恢复页面,以便可以从备份表中返回一个条目,然后将其返回到主表中(不从备份表中删除)。我有以下 SQL 查询:

INSERT INTO Results SELECT * FROM ResultsOLD WHERE ResultsOLD.id = '$IDin'

但是当我尝试在新页面上运行这个查询时,它给出了一个错误。我曾尝试研究该错误,但我不明白它在说什么(我对 SQL 有点陌生)。

这是我得到的错误:

只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表“结果”中的标识列指定显式值。

这是因为我在 WHERE 中使用了 ID,即主键吗?此外,当我从 ResultsOLD 表中重新插入数据时,我想为条目分配一个新的 ID(主键),但保持其他所有内容不变。ID 是自动递增的,但我认为因为我使用 ID 作为 WHERE,它可能也在尝试插入它?

4

1 回答 1

1

我在互联网上找到了一些东西: http://forums.databasejournal.com/showthread.php?9438-Turning-IDENTITY_INSERT-ON& p=21383#post21383

于 2013-08-24T14:18:28.043 回答