现象描述:在Oracle数据库中已经创建了 staff表,现在因为业务需求,创建与staff表结构相同的测试表 test_staff 。 test_staff表创建语句如下所示:
create table test_staff
(
STAFF_ID NUMBER(16) NOT NULL,
PARTY_ID NUMBER(16) NOT NULL,
STAFF_CODE VARCHAR2(250),
STAFF_ACCOUNT VARCHAR2(250),
ORG_ID NUMBER(16) NOT NULL,
STAFF_TYPE VARCHAR2(10),
STAFF_NAME VARCHAR2(250),
STAFF_DESC VARCHAR2(2000),
STATUS_CD VARCHAR2(10) NOT NULL,
STATUS_DATE DATE,
CREATE_DATE DATE,
CREATE_STAFF NUMBER(16),
UPDATE_DATE DATE,
UPDATE_STAFF NUMBER(16),
SALESSTAFF_CODE VARCHAR2(30),
COMMON_REGION_ID NUMBER(16),
LAN_ID NUMBER(16),
STAFF_TEL VARCHAR2(20),
constraint PK_STAFF_ID PRIMARY KEY(STAFF_ID)
);
之后,报错:ORA-00955:名称已由现有对象使用 ,如下图所示:
图一
通过运行SQL语句: SELECT * FROM test_staff ,编辑器提示报错:ORA-00942:表或视图不存在,如下图所示:
图二
通过查看Oracle数据库下 staff表设计,可以看到 staff表中有一索引名为:PK_STAFF_ID, 在上文创建 test_staff表的SQL语句中,创建的主键名索引也为 PK_STAFF_ID,错误就出现在这里!staff表设计如下图三所示。
图三
将 test_staff表的索引名修改成 PK_TEST_STAFF_ID,再次运行 SQL语句,表创建成功,如下图四所示。
图四