【发布时间】:2014-10-01 04:51:24
【问题描述】:
我想更改一个名为 person 的表,并希望使用 office 表向它添加外键
我使用的查询是
ALTER TABLE person
ADD CONSTRAINT person_Office_FK
FOREIGN KEY ( Office_id )
REFERENCES Office ( Office_id ) ;
表 office 大约有 500,000 行,表 person 大约有 500 万行
这个查询一直持续,我不确定发生了什么。
【问题讨论】:
-
永远,这听起来很长。你能说得更具体点吗?
-
顺便说一句,我认为这在某种程度上是意料之中的,因为它需要交叉检查 很多 行。
-
forever 意味着我从过去 45 分钟开始运行此查询,我不确定发生了什么以及需要多长时间..
-
我不知道 MySQL 是否有这个,但是在 MS-SQL 中你可以指定 WITH NOCHECK 它将创建外键而不检查你现有的数据以确保它符合。它只适用于未来的数据。这也意味着它不会“永远”。现在,您的数据库正在检查您的 person 表中的每一行,以确保它在 Office 表中具有匹配的 Office_id。