外键约束语法

时间:2016-06-22 14:12:57

标签: mysql sql sql-server

我是学习SQL语法的新手,并在一本书中遇到了这个例子。我理解需要外键并使用约束函数将键设置为另一个创建的表(在本例中为EMPLOYEE_TBL)。

我的问题是为什么它列出了行CONSTRAINT EMP_ID_FK FOREIGN KEY (EMP_ID)EMP_ID_FK部分究竟是什么?由于您只需要使用CONSTRAINT函数将子表上的字段设置为父表,您不能只将其写为CONSTRAINT FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE_TBL (EMP_ID));吗?

我是否理解错误?任何帮助,将不胜感激。谢谢!

CREATE TABLE EMPLOYEE_PAY_TBL
(EMP_ID    CHAR(9)    NOT NULL, 
DATE_HIRE   DATE   NULL,
DATE_LAST_RAISE   DATE   NULL,
CONSTRAINT EMP_ID_FK  FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE_TBL (EMP_ID));

2 个答案:

答案 0 :(得分:1)

条款jQuery("#rest-form").submit(function(e){ //The following stops the form from redirecting e.preventDefault(); jQuery("#rest-form").ajaxSubmit({ type: 'GET', url: jQuery('#rest-form').attr('action'), data: jQuery('#rest-form').serialize(), success: function (data) { //The data variable will contain the response data //if it's successful, you can no redirect wherever you want window.location.href = "http://www.example.com"; } }); }); 只是为约束命名。如果要禁用或删除约束,稍后需要这样做。你是正确的,名称(CONSTRAINT EMP_ID_FK)是可选的;如果省略它,你也可以省略EMP_ID_FK关键字,因为CONSTRAINT条足以告诉翻译你想要什么。

命名你的约束是完全可选的,但是对于纪录片来说被认为是好的做法,如果我说,你以后需要对约束做些什么。如果省略名称,数据库将自动为您命名约束,但祝您找到该名称是好的。

答案 1 :(得分:0)

就这样说。

表1必须引用表2.表2的主键ID是唯一值,这意味着可以使用此ID访问它,因为它在此表的所有行中都是唯一的。现在表1需要引用该ID。您需要将该ID存储在表1中,以便您可以参考它,并且您知道表2中的表1。您使用命名约定Table2_ID_FK来了解表1中的字段是对表2的ID的引用。约束是设置这些表之间的实际关系。