我在这里尝试做的是正确的吗?我可以重命名表中的外键吗?
CREATE TABLE EMPLOYEE
(
EMP_NUMBER INTEGER(25) NOT NULL,
EMP_FIRST_NAME CHAR(60),
EMP_LAST_NAME CHAR(60),
EMP_SALARY DECIMAL (15,2),
EMP_STARTDATE DATE,
EMP_GENDER CHAR(1),
EMP_HOURS INT(5),
PRIMARY KEY(EMP_NUMBER)
)
CREATE TABLE ORDERS
( ORDER_NUMBER INTEGER(45) NOT NULL,
ORDER_PART_NAME CHAR(150),
ORDER_PLACED_BY INTEGER(50)
PRIMARY KEY (ORDER_NUMBER),
FOREIGN KEY (ORDER_PLACED_BY) REFERENCES EMPLOYEE(EMP_NUMBER) ON UPDATE CASCADE
)
FOREIGN KEY(ORDER_PLACED_BY)参考更新CASCADE的员工(EMP_NUMBER)?
这有用吗? EMP_NUMBER可以存在于两个不同的表中而没有错误吗?
CREATE TABLE ORDERS
( ORDER_NUMBER INTEGER(45) NOT NULL,
ORDER_PART_NAME CHAR(150),
EMP_NUMBER INTEGER(25),
PRIMARY KEY (ORDER_NUMBER),
FOREIGN KEY (EMP_NUMBER) REFERENCES EMPLOYEE ON UPDATE CASCADE
)
这可能是一个非常简单的问题,只是试图自己学习这些东西,到目前为止这对我来说是个大问题,因为那时我必须重新制作所有的表格。感谢
答案 0 :(得分:0)
是的它可以,但是如果您要加入表orders.EMP_NUMBER
,那么在查询EMPLOYEE
时必须使用它的表名作为范围,因为该表也有一个相同的列名。
再次指出,在你的ORDERS
表中,FK约束定义是错误的。它必须是
FOREIGN KEY (EMP_NUMBER) REFERENCES EMPLOYEE(EMP_NUMBER) ON UPDATE CASCADE