2011-10-17 126 views
1

是否有任何已知的分支手动插入记录与主键曾经存在但被删除。所述主键仅存在于一个表中,并且在任何其他表中都未被引用。Mysql主键删除和重新插入

+1

即使不这样做的主要原因是参照完整性,它从来都不是很好的做法。你需要经常做这件事吗?为什么? –

+0

我们有一个测试和现场服务器。记录在测试中被重复,意外,并且必须被删除。这导致我们的实时和测试主键不同​​步。所以现在我们决定是否在数据库中留下空行,或者只是手动插入空隙来保持同步。我继承了一个设计非常糟糕的遗留系统,所以我意识到db是一个次优的情况,但这正是我需要处理的。感谢您的及时回复。 – John

回答

4

不是真的。

但通常这是一个坏主意,因为历史表。在某些情况下,它确实存在并将在大多数系统中记录。 您可能还有一个外部跟踪:备份,数据库副本以及链接服务器上的一些数据。

如果您只填写自动编号或标识中的空白,则这不是一个有效的原因。

+0

好吧。 ----- –

0

你用简单的insert语句提供您的主键的值,例如:

create table some_table (
id int(10) unsigned primary key, 
data text 
); 

insert into some_table (id, data) values (1, 'some data'); 
+0

我确定OP知道*如何做到这一点:他们问“可以吗”? – gbn

+0

我认为OP知道*如何做到这一点,但想知道这是否是一个好习惯。 – Clive

+1

视情况而定:)认真,对不起,我没有正确理解问题 – user973254