尝试用默认值填充表格

问题描述

我有2个表格,供应商和产品。我正在尝试用随机信息填充它们。 表格产品,列vendor_id。我将此列default的值设置为 -1

在尝试在给定列中插入认值的行上出现错误。 检查下面的代码,帖子底部错误消息。

供应商:

CREATE TABLE suppliers
(
 id int primary key identity(1,1),"name" nvarchar(50) not null,telephone nvarchar(50) default 'N/A',"address" nvarchar(50) default 'N/A'

)
INSERT INTO suppliers (name,telephone,address)
values ('supplier 1','021-555-333','Jovana Petrovica 72,Beograd 11000'),('supplier 2','Branka Radicevica 13,Zrenjanin 23000'),('supplier 3','Bulevar oslobodjenja 30A,Novi Sad 21000')

产品:

CREATE TABLE Products
(
 id int primary key identity(1,price float default 0,supplier_id int default -1,foreign key (supplier_id) references suppliers(id) ON DELETE SET DEFAULT 

)
INSERT INTO Products (name,price,supplier_id)
values ('Product 1',800,3),('Product 2',1300,('Product 3',230,2),('Product 4',570,('Product 5',1225,2);
INSERT INTO Products (name,price)
values ('Product 6',80); // I read online this is the way to insert default values (?)

错误消息:

INSERT语句与FOREIGN KEY约束“ FK__Products__suppli__03F0984C”发生冲突。数据库“ Tehna”的表“ dbo.suppliers”的列“ id”中发生了冲突。 该声明已终止。

解决方法

我猜默认的'supplier_id'应该大于0或为null,因为它与Suppliers中的'id'有关,后者既是主键又是整数