本文介绍 OceanBase 数据库 MySQL 模式下创建表时表已存在并报 ERROR 1050 错误的处理方法。
问题现象
创建 student 表时,系统报错,显示表已存在。
obclient> CREATE TABLE student(
id int ,
name varchar(18),
sex char(1),
age int,
address varchar(200),
email varchar(100),
date date,
PRIMARY KEY (id)
);
ERROR 1050 (42S01): Table 'student' already exists
该报错信息对应的错误码信息如下:
错误码:ERROR 1050
OceanBase 错误码:5020
兼容 MySQL 错误码:1050
可能原因
在创建表时未添加 IF NOT EXISTS 关键字,如果创建的表已存在,系统就会报错。
解决方法
请参考以下步骤,确认表是否确实存在,重命名已存在的表后,重新创建表。
查看数据库中该表是否已存在。
例如:
obclient> SHOW TABLES; +----------------+ | Tables_in_test | +----------------+ | student | +----------------+ 1 row in set如果存在重名的表,您可以将已存在的表重命名后再重新创建表。
例如,将原
student表改为t_stu表。obclient> ALTER TABLE student RENAME TO t_stu; Query OK, 0 rows affected说明
如果经确认该表确实不需要了,也可以使用
DROP TABLE语句将该表删除后再重新创建表。