修改列

时间:2015-05-25 17:40:36

标签: sql oracle alter-column

我在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语句。

有人能帮助我,我做错了吗?

2 个答案:

答案 0 :(得分:2)

用于修改列的Oracle语法是MODIFY

ALTER TABLE course_table MODIFY course_id varchar2(5);

我相信您使用的是Sql Server语法(ALTER TABLE ALTER COLUMN

Example

显然,这就引出了一个问题,为什么你不是首先创建具有正确类型的列,以免你遇到迁移问题。

答案 1 :(得分:1)

总是在表格中添加CONSTRAINT

CREATE TABLE COURSE_TABLE
(
COURSE_ID NUMBER(5) NOT NULL,
CONSTRAINT COURSE_TABLE_PK PRIMARY KEY(COURSE_ID)
);

这将解决世界上尝试sql fiddler或尝试修改它的所有头痛。既然你已经知道它将成为主键,你也可以从头开始安装约束。