I’m a Java student and I was trying to create a table for my database web app project.
x
CREATE TABLE customer (
customer_id int IDENTITY(1,1) PRIMARY KEY,
first_name varchar(45),
last_name varchar(45),
email varchar(45),
);
So I used IDENTITY(1,1)
to get the id
start from 1
and auto increment
by 1
. But IDENTITY
is underlined and I do not know why. Also when I try to run the code I get this Output :
Error starting at line : 1 in command -
CREATE TABLE customer (
customer_id int IDENTITY(1,1),
first_name varchar(45),
last_name varchar(45),
email varchar(45),
)
Error report -
ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Advertisement
Answer
You have multiple syntax errors. But the code you want is:
CREATE TABLE customers (
customer_id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
first_name varchar2(45),
last_name varchar2(45),
email varchar2(45)
);
Notes:
- The syntax in Oracle is different from SQL Server. There are no arguments to
IDENTITY
and you wantGENERATED ALWAYS AS
for the column. - Oracle prefers
VARCHAR2()
toVARCHAR()
. - You have missing and extra commas.
- 45 characters seems too short for the columns, particularly the email.
- I prefer table names in the plural because they contain multiple copies of an entity.