-2

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

有人可以帮助我我做错了什么吗?

4

2 回答 2

2

用于修改列的 Oracle 语法是MODIFY

ALTER TABLE course_table MODIFY course_id varchar2(5);

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

例子

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

于 2015-05-25T17:44:50.600 回答
1

总是像这样在表中添加 CONSTRAINT

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

这将解决世界上所有尝试使用 sql fiddler 或尝试修改它的头痛。由于您已经知道这将是主键,您不妨从一开始就安装约束。

于 2015-05-25T22:26:03.583 回答