首页 > 解决方案 > 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:

标签: oracle

解决方案


您的代码中有多个问题。

  • 表名和列名不应用单引号括起来。
  • AUTO_INCREMENT不允许使用关键字。它应该在 oracle 中以不同的方式实现。
  • NOT NULLPK 列不需要。它是隐含的。

更正的代码:

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)
);

推荐阅读