外键的功能很强大,可以解决很多问题.主要作用:
建立表之间的关联关系
语法:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT fk_column
FOREIGN KEY (column1,column2,...column_n)
REFERENCES parent_table (column1, column2,... column_n)
ON DELETE CASECADE
);
其中级联关系很有意思:
外键建立在子表上(也就是1对多,或者多对1的"多表"上)
其中级联删除上面
no action 的意思为删除主表,对子表的数据不影响;
cascade 的意思为删除主表,对子表的数据也删除;
set null 的意思为删除主表,对子表的数据设置为空;--(应该是该列,没做过验证)
另外验证的勾,会去验证主表和子表的关系
如果子表里面的数据在主表里面搜不到,则不能通过,手工看看哪个数据有问题
Select h.header_id As a, l.header_id As b, l.Line_Id From Cux_Hrsc_Headers_t h, Cux_Hrsc_Lines_t l Where 1 = 1 And h.Header_Id(+) = l.Header_Id And h.Header_Id Is Null And l.Line_Id Is Null DELETE FROM CUX_HRSC_LINES_T WHERE line_id = 1752