在dataGrip中激活外键约束错误

问题描述

我正在使用 Datagripsqlite。 我有一个 ConnectionFactory factory = new ConnectionFactory(); //factory.UserName = "user"; //factory.Password = "password"; //factory.VirtualHost = "/"; factory.HostName = "192.168.99.100"; factory.Port = AmqpTcpEndpoint.UseDefaultPort; IConnection connection = factory.CreateConnection(); //using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "hello",durable: false,exclusive: false,autoDelete: false,arguments: null); string message = "Hello World!"; var body = Encoding.UTF8.GetBytes(message); channel.Basicpublish(exchange: "",routingKey: "hello",basicProperties: null,body: body); Console.WriteLine(" [x] Sent {0}",message); } Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); 和另一个名为 suppliers :

products

我试过 CREATE TABLE suppliers (id INTEGER NOT NULL PRIMARY KEY,nom TEXT,siege_social TEXT); CREATE TABLE Products (id INTEGER NOT NULL PRIMARY KEY,prix REAL,supplier INTEGER,FOREIGN KEY (supplier) REFERENCES suppliers(id) ); 像我的老师那样激活外键约束。 但是,当我在供应商表为空的情况下尝试插入产品时,我没有收到任何错误

PRAGMA foreign_keys = ON;

我期待这个:INSERT INTO Products values (1,"Lunettes Cobra",30,1);

你知道我如何让它为此引发错误吗?

谢谢!

解决方法

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

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

enter image description here