我在SQL开发人员中有这段代码:
create table course_table
(
course_id number(5) not null,
course_name varchar2(25) not null,
course_hours number(1) not null,
department varchar2(10) not null,
description varchar2(50) not null,
teacher varchar2(20) not null,
create_dttm DATE,
update_dttm TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
user_created varchar2(20) not null,
user_updated varchar2(20) not null
);
commit;
alter table course_table
add CONSTRAINT course_id_pk PRIMARY KEY (course_id);
ALTER TABLE course_table
**ALTER** COLUMN course_id varchar2(5)
我在粗体字上出错了。它说
ORA-00900:无效的SQL语句。
有人能帮助我,我做错了吗?
答案 0 :(得分:2)
用于修改列的Oracle语法是MODIFY
ALTER TABLE course_table MODIFY course_id varchar2(5);
我相信您使用的是Sql Server语法(ALTER TABLE ALTER COLUMN
)
显然,这就引出了一个问题,为什么你不是首先创建具有正确类型的列,以免你遇到迁移问题。
答案 1 :(得分:1)
总是在表格中添加CONSTRAINT
CREATE TABLE COURSE_TABLE
(
COURSE_ID NUMBER(5) NOT NULL,
CONSTRAINT COURSE_TABLE_PK PRIMARY KEY(COURSE_ID)
);
这将解决世界上尝试sql fiddler或尝试修改它的所有头痛。既然你已经知道它将成为主键,你也可以从头开始安装约束。