首批通过分布式安全可靠测评,为关键业务系统打造
创建表时表已存在,错误代码 ORA-00955
更新时间:2023-12-07 03:16
本文介绍 OceanBase 数据库 Oracle 模式下创建表时表已存在并报 ORA-00955 错误的处理方法。
问题现象
创建 student 表时,系统报错,显示表已存在。
obclient [SYS]> CREATE TABLE student(
id NUMBER,
name varchar(18),
sex char(1),
age NUMBER,
address varchar(200),
email varchar(100),
c_date date,
PRIMARY KEY (id)
);
ORA-00955: name is already used by an existing object
该报错信息对应的错误码信息如下:
错误码:ORA-00955
OceanBase 错误码:5331、5834
SQLSTATE:HY000
可能原因
在创建表时,如果创建的表已存在,系统就会报错。
解决方法
请参考以下步骤,确认表是否确实存在,重命名已存在的表后,重新创建表。
查看数据库中该表是否已存在,例如:
obclient [SYS]> SELECT t.table_name tablename FROM user_tables t WHERE table_name = 'student'; +------------+ | TABLENAME | +------------+ | STUDENT | +------------+ 1 row in set如果该表已存在,请优先确认已有表是否满足业务需求,如果不满足,建议为新表设计新的表名,例如,改为创建
t_stu表。obclient [SYS]> CREATE TABLE t_stu( t_id NUMBER, t_name varchar(18), t_sex char(1), t_age NUMBER, t_address varchar(200), t_email varchar(100), t_c_date date, PRIMARY KEY (t_id) ); Query OK, 0 rows affected
说明
如果确认已存在的表不再使用,也可以用 DROP TABLE 将该表删除后重新创建。