在mysql中,表的字段是本表的外键,这该如何设置?

说白了,在MySQL中定义一个字段作为另一个表的外键是非常简单的。
我们先来说说最重要的事情。
创建表时需要定义外键约束。
例如,对于文件夹表,您可以:
1 在 CREATE TABLE 语句中;文件夹字段定义为int(1 1 )类型,并定义为主键。
2 .parentfolderid字段也设置为int(1 1 ),但用于引用父文件夹的默认值为NULL。
3 .然后使用外键约束来定义这两个字段之间的关系。

具体来说,我们去年做的项目大约有3 000个dat。
我们这样设置:

文件夹字段:INT(1 1 ) NULL AUTO_INCRMENT;主键
parentfolderid 字段:INT(1 1 ) DEFAULT NULL;
一开始我以为只需要一个文件夹,但后来我意识到这是错误的。
虽然parentfolderid默认为NULL。
链接文件夹级别非常重要。

等等,当你创建外键时;请记住指定约束名称,例如 CONSTRAINT FK__1 FOREIGN KEY (parentfolderid) REFERENCEfolderid (folderid)。

最后,警告主表中数据完整性中存在一个容易出现的漏洞。
如果从表中插入数据时没有对应的记录。
MySQL 将抛出错误。
许多人没有注意到这一事实,从而导致信息相互矛盾。

所以我认为你应该在创建表时尽量定义外键以避免很多额外的问题。
你怎么认为?

mysql外键约束怎么弄

创建外键的步骤简述: 1 .定义父表和子表。
外键存在于子表中,引用父表的主键。
2 、为父表创建主键:ALTER TABLEparent_table ADD PRIMARY KEY(id); 3 . 为子表创建外键: ALTER TABLE Child_table ADD FOREIGN KEY (parent_id) REFERENCESparent_table(id); 4 .配置ONUPDATE CASCADE、ONDELETE CASCADE等选项。

示例: 创建父表Customers和子表Orders,Orders表customer_id指向Customers表的ID。
创建表客户(ID INT NOT NULL AUTO_INCRMENT, NAME VARCHAR(2 5 5 ) NOT NULL, PRIMARY KEY(id)); CREATE TABLE ORDERS(ID INT NOT NULL AUTO_INCRMENT, customer_id INT NOT NULL, Product_id INT NOT NULL, FOREIGN KEY (customer_id) REFERENCES CUSTOMER (id));
外键确保订单链接到客户以防止数据不一致。