关于删除级联SQL
代码是作为脚本编写的,当我第二次运行此脚本时,is不会删除表关于删除级联SQL,sql,Sql,代码是作为脚本编写的,当我第二次运行此脚本时,is不会删除表EMPLOYEE\u TBL,因为会发生各种错误 现在的问题是:为什么DROP TABLE EMPLOYEE\u TBL不工作? DROP TABLE EMPLOYEE_TBL; DROP TABLE EMPLOYEE_PAY_TBL; Create table EMPLOYEE_TBL( EMP_ID VARCHAR(9), LAST_NAME VARCHAR(15) NOT NULL,
EMPLOYEE\u TBL
,因为会发生各种错误
现在的问题是:为什么DROP TABLE EMPLOYEE\u TBL
不工作?
DROP TABLE EMPLOYEE_TBL;
DROP TABLE EMPLOYEE_PAY_TBL;
Create table EMPLOYEE_TBL(
EMP_ID VARCHAR(9),
LAST_NAME VARCHAR(15) NOT NULL,
FIRST_NAME VARCHAR(15) NOT NULL,
MIDDLE_NAME VARCHAR(15),
ADDRESS VARCHAR(50) NOT NULL,
CITY VARCHAR(15) NOT NULL,
STATE VARCHAR(10) NOT NULL,
ZIP NUMBER(5) NOT NULL,
PHONE VARCHAR(15),
PAGER VARCHAR(15) );
Alter table EMPLOYEE_TBL
add constraints pk_EMPLOYEE_TBL primary key (EMP_ID);
commit;
Create table EMPLOYEE_PAY_TBL (
EMP_ID VARCHAR(9),
POSITION VARCHAR(15) NOT NULL,
DATE_HIRE DATE,
PAY_RATE DECIMAL(4,2) NOT NULL,
DATE_LAST_RAISE DATE,
Salary Decimal (4, 2),
Bonus Decimal (4, 2) );
--CONSTRAINT EMP_FK FOREIGN KEY (EMP_ID_ REFERENCES
--EMPLOYEE_TBL (EMP_ID));
commit;
Alter table EMPLOYEE_PAY_TBL
add constraints pk_EMPLOYEE_PAY_TBL primary key (EMP_ID);
alter table EMPLOYEE_PAY_TBL
add constraints fk_EMP_ID foreign key (EMP_ID) references EMPLOYEE_TBL (EMP_ID) ON DELETE CASCADE;
第二次,当您尝试删除员工时,您有以下限制:
alter table EMPLOYEE_PAY_TBL
add constraints fk_EMP_ID foreign key (EMP_ID) references EMPLOYEE_TBL (EMP_ID)
ON DELETE CASCADE;
因此,必须先删除此约束,然后再删除表
有关更多信息,请发布错误您不能删除
表EMPLOYEE\u TBL
,因为它被EMPLOYEE\u PAY\u TBL
引用
删除级联上的选项是指删除父表中的行,而不是删除父表
从DDL判断,您很可能正在使用Oracle。在这种情况下,您可以在删除表时使用cascade
关键字:
DROP TABLE EMPLOYEE_TBL CASCADE CONSTRAINTS;
DROP TABLE EMPLOYEE_PAY_TBL CASCADE CONSTRAINTS;
DROP TABLE
的CASCADE
选项也将自动删除引用droppen表的所有外键。错误消息是什么?您使用的是哪种DBMS?神谕