Oracle Alter Table,在列ORA-0253处添加外键约束
您好,我正在学习SQL Associate的Oracle认证。 并尝试做一些例子。 我有一个问题,我不能很容易地找到这方面的参考Oracle Alter Table,在列ORA-0253处添加外键约束,oracle,Oracle,您好,我正在学习SQL Associate的Oracle认证。 并尝试做一些例子。 我有一个问题,我不能很容易地找到这方面的参考 create table employees (employee_id number NOT NULL, first_name varchar(20), last_name varchar(30), constraint employee_pk primary key (employee_id)); create table employee_notes (em
create table employees
(employee_id number NOT NULL,
first_name varchar(20),
last_name varchar(30),
constraint employee_pk primary key (employee_id));
create table employee_notes
(employee_notes_id number,
employee_notes varchar(500),
constraint pk_employee_notes primary key (employee_notes_id));
创建序列员工注释以1递增1开始
现在我想在employee_notes表中添加一个带有外键约束的新列。 我在语法上找不出问题出在哪里
****alter table employee_notes
add employee_id number
constraint fk_employee_notes foreign key (employee_id) references employees (employee_id);****
我得到这个错误
ORA-0253:不允许使用约束规范
我还尝试更改表,添加列,然后添加约束,但无法完成 -- 更改表格员工笔记 添加约束fk_employee_notes外键(employee_id)引用employee(employee_id) ORA-0253:此处不允许约束规范 我想知道我怎样才能做到这一点
为什么这个语法是错误的:)您做了一些错误的事情,因为-它工作正常:
使用ALTER TABLE时。。。ADD要在一条语句中添加列和约束,请执行以下操作:
-- notice the () and the comma!
alter table employee_notes
add (
employee_id number
, constraint fk_employee_notes
foreign key (employee_id) references employees (employee_id)
) ;
这应该能奏效。看见语法类似于CREATE TABLE,您还可以在()中写入所有列名、数据类型等,用逗号分隔。我在oracle的SQL Live中执行这些语句,我现在就在Live SQL中逐个命令执行它们。也没问题。我想附上一张图片来说明这一点,但我现在没有访问任何图片共享服务的权限。在您上一次声明中,
employee notes
应该是employee\u notes
SQL> CREATE TABLE employees
2 (
3 employee_id NUMBER NOT NULL,
4 first_name VARCHAR (20),
5 last_name VARCHAR (30),
6 CONSTRAINT employee_pk PRIMARY KEY (employee_id)
7 );
Table created.
SQL>
SQL> CREATE TABLE employee_notes
2 (
3 employee_notes_id NUMBER,
4 employee_notes VARCHAR (500),
5 CONSTRAINT pk_employee_notes PRIMARY KEY (employee_notes_id)
6 );
Table created.
SQL> ALTER TABLE employee_notes ADD employee_id NUMBER;
Table altered.
SQL> ALTER TABLE employee_notes ADD CONSTRAINT fk_employee_notes
2 FOREIGN KEY (employee_id)
3 REFERENCES employees (employee_id);
Table altered.
SQL>
-- notice the () and the comma!
alter table employee_notes
add (
employee_id number
, constraint fk_employee_notes
foreign key (employee_id) references employees (employee_id)
) ;