如果无法在sql PLUS中插入表,如何解决主键问题? 我的意思是我需要添加更多列
CREATE TABLE SETS (
2 ID NUMBER (4) CONSTRAINT SETS_PK PRIMARY KEY,
3 COM NUMBER (7,2),
4 ENAME VARCHAR2(15),
5 SAL NUMBER(8,2)
6* );
INSERT INTO SETS VALUES (1, 1, 'COMFORT', 0);
已插入1行。
INSERT INTO SETS VALUES (1, 2, ''Progressive', 5000);
Error starting at line : 1 in command -
insert into sets values(1, 2, 'Progressive', 5000)
Error report -
ORA-00001: нарушено ограничение уникальности (AIDAR.SETS_PK)
答案 0 :(得分:1)
因为您已将id声明为主键,所以它对于每一行都是唯一的
INSERT INTO SETS VALUES (1, 1, 'COMFORT', 0);
INSERT INTO SETS VALUES (2, 2, 'Progressive', 5000);
但是您为两行提供了相同的ID,这就是它引发错误的原因。顺便说一句,我已经编辑了第二行的值,它将立即可用
答案 1 :(得分:0)
根据建议,您需要使用组合键来解决问题:
CREATE TABLE SETS (
ID NUMBER (4),
COM NUMBER (7,2),
ENAME VARCHAR2(15),
SAL NUMBER(8,2),
CONSTRAINT SETS_PK PRIMARY KEY (ID, COM)
);
INSERT INTO SETS VALUES (1, 1, 'COMFORT', 0);
INSERT INTO SETS VALUES (1, 2, 'Progressive', 5000);
SELECT
*
FROM
SETS;
-- Output: --
ID COM ENAME SAL
---------- ---------- --------------- ----------
1 1 COMFORT 0
1 2 Progressive 5000
干杯!