Mysql外键用法分析

 2022-10-27    364  

Mysql外键用法是Mysql数据库中的基础知识,下面就为您详细将介绍Mysql外键用法,如果您对此方面有兴趣的话,不妨一看。

昨晚用Mysql建外键约束,始终没有成功,今天找到这个,原来只有InnoDB类型的表才可以使用Mysql外键.

Mysql外键用法分析

只有InnoDB类型的表才可以使用外键

CREATETABLEperson( 
idSMALLINTUNSIGNEDNOTNULLAUTO_INCREMENT, 
nameCHAR(60)NOTNULL, 
PRIMARYKEY(id) 
)type=innoDB; 

CREATETABLEshirt( 
idSMALLINTUNSIGNEDNOTNULLAUTO_INCREMENT, 
styleENUM('t-shirt','polo','dress')NOTNULL, 
colorENUM('red','blue','orange','white','black')NOTNULL, 
ownerSMALLINTUNSIGNEDNOTNULL, 
FOREIGNKEY(owner)REFERENCESPERSON(id) 
ONDELETECASCADE 
ONUPDATECASCADE, 
PRIMARYKEY(id) 
)type=innoDB; 

然后打开MySQL Administrator终于看到 FOREIGN KEY有东西了,尝试手工删除后再用MySQL Administrator建立,成功。

INSERTINTOpersonVALUES(NULL,'AntonioPaz'); 

SELECT@last:=LAST_INSERT_ID(); 

INSERTINTOshirtVALUES 
(NULL,'polo','blue',@last), 
(NULL,'dress','white',@last), 
(NULL,'t-shirt','blue',@last); 

INSERTINTOpersonVALUES(NULL,'LillianaAngelovska'); 

SELECT@last:=LAST_INSERT_ID(); 

INSERTINTOshirtVALUES 
(NULL,'dress','orange',@last), 
(NULL,'polo','red',@last), 
(NULL,'dress','blue',@last), 
(NULL,'t-shirt','white',@last); 

SELECT*FROMperson; 

SELECT*FROMshirt; 

测试UPDATE关联

UPDATEPERSONSETid=3WHEREid=1; 
SELECT*FROMshirt; 

测试DELETE关键

DELETEFROMPERSONWHEREid=3; 
SELECT*FROMshirt;

  •  标签:  
  • MySQL
  •  

原文链接:https://77isp.com/post/4555.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。