首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dataGrip中的激活外键约束错误

dataGrip中的激活外键约束错误
EN

Stack Overflow用户
提问于 2021-05-23 17:10:06
回答 2查看 117关注 0票数 1

我正在使用DataGrip和sqlite。我有一个表suppliers和一个名为products的表:

代码语言:javascript
复制
CREATE TABLE Suppliers (id INTEGER NOT NULL PRIMARY KEY,
nom TEXT,
siege_social TEXT);

CREATE TABLE Products (id INTEGER NOT NULL PRIMARY KEY,
nom TEXT,
prix REAL,
supplier INTEGER,
FOREIGN KEY (supplier) REFERENCES Suppliers(id)
);

我尝试了PRAGMA foreign_keys = ON;来激活外键约束,就像我的老师做的那样。但是,当我在供应商表为空的情况下尝试插入产品时,我没有得到任何错误:

代码语言:javascript
复制
INSERT INTO Products values (1, "Lunettes Cobra", 30, 1);

我预计是这样的:FOREIGN KEY constraint failed

你知道我怎么才能让它为此产生一个错误吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-24 16:17:52

执行杂注语句仅为当前会话启用该设置。控制台和编辑器在不同的会话中执行。

只需转到数据源设置的高级选项卡并在那里进行设置。它将应用于所有会话。

票数 2
EN

Stack Overflow用户

发布于 2021-05-23 18:05:42

@forpas要求完整的代码,所以我删除了所有现有的表,并使用了以下代码:

代码语言:javascript
复制
PRAGMA foreign_keys = ON;

CREATE TABLE Suppliers (id INTEGER NOT NULL PRIMARY KEY,
nom TEXT,
siege_social TEXT);

CREATE TABLE Products (id INTEGER NOT NULL PRIMARY KEY,
nom TEXT,
prix REAL,
supplier INTEGER,
FOREIGN KEY (supplier) REFERENCES Suppliers(id)
);
INSERT INTO Products values (2, "Lunettes Cobra", 30, 1);

一切都像预期的那样工作。

代码语言:javascript
复制
[2021-05-23 12:02:26] [19] [SQLITE_CONSTRAINT_FOREIGNKEY]  A foreign key constraint failed (FOREIGN KEY constraint failed)

@forpas再次正确,我在激活foreign_keys之前创建表的事实不是问题。我使用了两个控制台,一个用于创建表,另一个用于插入值。我只在第一个中激活了foreign_keys。我以为它是在数据库中激活的,但它与控制台相关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67658028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档