【发布时间】:2017-06-07 14:02:27
【问题描述】:
我在一个 SQL 数据库上有两个表:
MODEL(ID_MODEL,MODEL,ID_manu,ID_CLASS)和CLASS(ID_CLASS,CLASS)
它们使用ID_CLASS 链接。
删除信息的查询有一条无规则,所以当我尝试从CLASS 删除一行时,如果ID_CLASS 正在MODEL 表上使用,它应该会出错。
但它被忽略了。它正在从CLASS 表中删除CLASS,并将MODEL 表上的行从DataGridView 中删除,但仍保留在表中。
MODEL 上的 ID_CLASS 选项是 NOT NULL,如下所示:
CREATE TABLE [dbo].[MODEL] (
[ID_MODEL] INT IDENTITY (1, 1) NOT NULL,
[MODEL] VARCHAR (50) NOT NULL,
[ID_manu] INT NOT NULL,
[ID_CLASS] INT NOT NULL,
PRIMARY KEY CLUSTERED ([ID_MODEL] ASC),
UNIQUE NONCLUSTERED ([MODEL] ASC)
);
即使在删除并重新创建关系之后,它仍然会发生。
还有另外两个表具有类似的配置(相同的规则和数据类型),并且可以按预期工作。每次运行删除查询时都会检索错误。
【问题讨论】:
-
您没有在模型表上定义外键。
-
如果没有外键,你是如何在数据库中定义这个“规则”的?
标签: sql sql-server vb.net