sql - SQL Server - 将多个值插入列
问题描述
我正在尝试更新我的比萨饼,以便它允许不止一种浇头。Cannot insert duplicate key row in object 'dbo.PizzaToppings' with unique index 'FK_Pizza'. The duplicate key value is (3).
尝试向列添加多个 toppingID时收到错误消息。如何添加多个 ToppingID?
INSERT INTO dbo.PizzaToppings
(PizzaToppingsID, PizzaID, ToppingsID)
VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 3),
(4, 4, 7),
(5, 5, 6),
(6, 6, 4),
(7, 3, 7);
创建的 FK_Pizza
CREATE UNIQUE NONCLUSTERED INDEX
FK_Pizza
ON PizzaToppings
(
PizzaID ASC
);
解决方案
您正在尝试将数组存储到看起来像数字列的内容中。
通常你会为每个单独的浇头设置一行:
Pizzas:
PizzaID integer
PizzaName varchar(32)
Toppings:
ToppingID integer
ToppingName varchar(32)
PizzaTopping:
PizzaID integer (fk to Pizzas.PizzaID)
ToppingID integer (fk to Toppings.ToppingID)
PizzaTopping 将为每个比萨饼的每个浇头包含一行。
编辑更新的问题:
您的错误归结为重复的密钥违规。检查表上的约束,看起来有一个约束阻止您每添加一行以上pizzaID
推荐阅读
- javascript - ES6 箭头函数 () 与 _
- git - 为什么 PyCharm 不验证 Git 提交
- android - 在 Kotlin 中创建 SAM 接口的实例时,为什么需要在接口名称后加上括号?
- python - Django 表单中的 HTML 必需属性
- python - 如何在python中求解雅可比椭圆函数
- python - 如何模拟随机过程,直到路径的所有元素都是正数?
- javascript - 匹配不包含特定模式的特定字符串
- java - Spring Data Jpa如何处理静态外键相关表
- reactjs - 嵌入 gatsby 项目的 Tiktok 在 Netlify 上消失了
- python - 在 Gekko Optimizer 中使用 cspline 插值