Oracle表上违反了唯一约束
我想在Oracle表中生成随机数据: 第一桌Oracle表上违反了唯一约束,oracle,oracle11g,Oracle,Oracle11g,我想在Oracle表中生成随机数据: 第一桌 -- TABLE AGENT_HISTORY CREATE TABLE AGENT_HISTORY( EVENT_ID INTEGER NOT NULL, AGENTID INTEGER NOT NULL, EVENT_DATE DATE NOT NULL ) / CREATE INDEX IX_RELATIONSHIP1 ON AGENT_HISTORY (AGENTID) / -- ADD KEYS FOR TABLE AGE
-- TABLE AGENT_HISTORY
CREATE TABLE AGENT_HISTORY(
EVENT_ID INTEGER NOT NULL,
AGENTID INTEGER NOT NULL,
EVENT_DATE DATE NOT NULL
)
/
CREATE INDEX IX_RELATIONSHIP1 ON AGENT_HISTORY (AGENTID)
/
-- ADD KEYS FOR TABLE AGENT_HISTORY
ALTER TABLE AGENT_HISTORY ADD CONSTRAINT KEY8 PRIMARY KEY (EVENT_ID)
/
第二桌
-- TABLE CPU_HISTORY
CREATE TABLE CPU_HISTORY(
CPU_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER NOT NULL,
CPU_NAME VARCHAR2(50 ) NOT NULL,
CPU_VALUE NUMBER NOT NULL
)
/
我尝试创建此PL/SQL块:
Error starting at line : 1,690 in command -
BEGIN
FOR loop_counter IN 1..1000
LOOP
INSERT INTO CPU_HISTORY_ID (CPU_HISTORY_ID, EVENT_ID, CPU_NAME, CPU_VALUE) VALUES (loop_counter, loop_counter, 'cpu1', dbms_random.value(1,100));
END LOOP;
COMMIT;
END;
错误
第二个PL/SQL块
BEGIN
FOR loop_counter IN 1..1000
LOOP
INSERT INTO AGENT_HISTORY (EVENT_ID, AGENTID, EVENT_DATE) VALUES (loop_counter, 22, SYSDATE);
END LOOP;
COMMIT;
END;
错误
你能告诉我哪里错了吗
有没有其他方法可以在表中生成1000行随机值?第一个错误是因为您插入的表是
CPU\u HISTORY\u ID
,但它应该是CPU\u HISTORY
第二个错误可能是由于该表已经填充了数据而导致的。您是否在没有删除数据的情况下执行了第二个PL两次?第一个错误是因为您插入的表是
CPU\u HISTORY\u ID
,但它应该是CPU\u HISTORY
第二个错误可能是由于该表已经填充了数据而导致的。您是否在不删除数据的情况下执行了第二个PL两次?不客气。别忘了把答案标为有效:)不客气。别忘了将答案标记为有效:)
BEGIN
FOR loop_counter IN 1..1000
LOOP
INSERT INTO AGENT_HISTORY (EVENT_ID, AGENTID, EVENT_DATE) VALUES (loop_counter, 22, SYSDATE);
END LOOP;
COMMIT;
END;
Error report -
ORA-00001: unique constraint (ADMIN.KEY8) violated
ORA-06512: at line 5
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.