我有一个由三列组成的主键:CODE_TARIF, UNITE, MODE_LIV
。在我的表格中有三个记录MODE_LIV = 2
。然后我插入一个记录MODE_LIV = 4
。SQL INSERT违例主键
INSERT INTO T_TARIF (
CODE_TARIF, ZONE, UNITE, MODE_LIV, LIBELLE, TR_DEBUT, TR_FIN, MONTANT
)
SELECT 'Livr_A_50_99', '2', '1', '4', 'sdg', '50', '99', '90'
UNION ALL
SELECT 'Livr_A_50_99', '2', '1', '4', 'sdg', '50', '99', '90'
UNION ALL
SELECT 'Livr_A_50_99', '2', '1', '4', 'sdg', '50', '99', '90'
它返回一个错误(违反主关键字的),其没有任何意义,因为MODE_LIV = 2
不等于MODE_LIV = 4
。
我知道我可以添加一个代理键作为自动递增的标识列,但在我的情况下,这不是一个选项。
您正在为所有PK列插入具有相同值的3行。 (实际上所有的非PK列) –