CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),//要修改的内容
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);将上述要修改的完整性约束语句改为:FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE,当我输入:
SQL> alter table sc drop foreign key;出现了:
alter table sc drop foreign key
*
第 1 行出现错误:
ORA-00905: 缺失关键字不太明白错误原因,
请教高手!!!!!!!
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),//要修改的内容
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);将上述要修改的完整性约束语句改为:FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE,当我输入:
SQL> alter table sc drop foreign key;出现了:
alter table sc drop foreign key
*
第 1 行出现错误:
ORA-00905: 缺失关键字不太明白错误原因,
请教高手!!!!!!!
你先此用户下查出约束名
SELECT constraint_name FROM user_constraints uc WHERE uc.table_name='SC' AND uc.constraint_type='R';
再
ALTER TABLE sc DROP CONSTRAINT constraint_name
DECLARE
sql_text VARCHAR2(100);
TYPE constraint_table_type IS TABLE OF user_constraints.constraint_name%TYPE INDEX BY BINARY_INTEGER;
constraint_table constraint_table_type;
BEGIN
SELECT constraint_name BULK COLLECT
INTO constraint_table
FROM user_constraints uc
WHERE uc.table_name = 'SC'
AND uc.constraint_type = 'R';
FOR i IN constraint_table.FIRST .. constraint_table.LAST LOOP
sql_text := 'ALTER TABLE sc DROP CONSTRAINT ' || constraint_table(i);
EXECUTE IMMEDIATE sql_text;
END LOOP;
END;
alter table tablename add constraint fk_name foreign key(bin_code) references part_in; 注意foreign key也是约束哟。alter table tablename drop constrain fk_name; 所以这里当constraint处理。