oracle - ORA-00903: 创建表时表名无效
问题描述
请帮忙。我不确定发生了什么。我什至尝试删除表但仍然不成功。
CREATE TABLE 'customer' (
'customer_id' int NOT NULL AUTO_INCREMENT,
'type' varchar(45) NOT NULL,
'name' varchar(45) NOT NULL,
'cut_off' int NOT NULL,
PRIMARY KEY ('customer_id')
)
Error starting at line : 1 in command -
CREATE TABLE 'customer' (
'customer_id' int NOT NULL AUTO_INCREMENT,
'type' varchar(45) NOT NULL,
'name' varchar(45) NOT NULL,
'cut_off' tinyint NOT NULL,
PRIMARY KEY ('customer_id')
)
Error report -
ORA-00903: invalid table name
00903. 00000 - "invalid table name"
*Cause:
*Action:
解决方案
您的代码中有多个问题。
- 表名和列名不应用单引号括起来。
AUTO_INCREMENT
不允许使用关键字。它应该在 oracle 中以不同的方式实现。NOT NULL
PK 列不需要。它是隐含的。
更正的代码:
CREATE TABLE customer (
customer_id int GENERATED always as IDENTITY,
type varchar(45) NOT NULL,
name varchar(45) NOT NULL,
cut_off int NOT NULL,
primary key(customer_id)
);