創(chuàng)建外鍵可以通過navicat或者sqlyog等工具來完成,但是還是推薦使用語句完成。
創(chuàng)建語句:ALTER TABLE <表名> ADD CONSTRAINT 外鍵名 FOREIGN KEY(外鍵字段) REFERENCES 關(guān)聯(lián)表名(關(guān)聯(lián)字段)
舉例:
? ? 表一:學(xué)生信息表 stu_info蒿柳,主鍵為學(xué)生的學(xué)號(hào)stu_id酷师, 還有一個(gè)字段就是班級(jí)號(hào),class_id,這個(gè)班級(jí)號(hào)應(yīng)該就是引用自班級(jí)表畏浆。所以我們需要建立學(xué)生和班級(jí)之間的外鍵關(guān)聯(lián)税稼。
? ? 表二:班級(jí)表? class烦秩,主鍵為? id。
ALTER TABLE <表名> ADD CONSTRAINT 外鍵名 FOREIGN KEY(外鍵字段) REFERENCES 關(guān)聯(lián)表名(關(guān)聯(lián)字段)
這里我們需要思考一個(gè)問題郎仆,這個(gè)表名應(yīng)該填什么只祠?是填學(xué)生信息表還是班級(jí)表呢?也就是說這個(gè)外鍵應(yīng)該添加在哪個(gè)表呢丸升?
這個(gè)問題其實(shí)很簡單铆农,我們是在學(xué)生信息表里面引用了班級(jí)表里面的班級(jí)id,a引用b那么外鍵就應(yīng)該設(shè)置在a表中狡耻,記住這個(gè)就好辦了。
外鍵名字可以隨意設(shè)置猴凹,但是建議設(shè)置規(guī)則為(外鍵的命名為 fk_外鍵所在的表名_外鍵引用的表名 夷狰。因?yàn)橥怄I所在的表為從表,所以上式可以寫為 fk_ 從表名_主表名 郊霎。)沼头,所以我們?nèi)∶麨椤癴k_user_info_class”
外鍵字段設(shè)置的就是學(xué)生表中引用班級(jí)表中的那一列的列名,這里應(yīng)該就是"class_id"书劝。
關(guān)聯(lián)字段設(shè)置的就是班級(jí)表中被引用的那一列的列名进倍,一般都是主鍵,這里應(yīng)該是“id”购对。
所以猾昆,外鍵語句應(yīng)該是? ? ? ?ALTER TABLE <user_info> ADD CONSTRAINT fk_user_info_class FOREIGN KEY(class_id) REFERENCES 關(guān)聯(lián)表名(id)
ok,小伙伴們可以自己去試一試骡苞。