其实在MySQL中如何设置主键和外键的问题并不复杂,但是又很多的朋友都不太了解mysql老师不建议使用外键,因此呢,今天小编就来为大家分享在MySQL中如何设置主键和外键的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
本文目录
mysql用外键以后怎么修改字段名
先要去掉外键约束才能修改字段名,如果直接修改的话mysql会提示,导致修改不成功。
mysql外键怎么刷
1、在CREATETABLE语句中,通过FOREIGNKEY关键字来添加外键;
2、在ALTERTABLE语句中,通过ADD和FOREIGNKEY关键字来添加外键。
在MySQL中如何设置主键和外键
在MySQL中,你可以使用以下语句来设置主键和外键:
1.设置主键:
-在创建表时设置主键:
```sql
CREATETABLEtable_name(
column1datatypePRIMARYKEY,
column2datatype,
...
);
```
-在已存在的表中添加主键:
```sql
ALTERTABLEtable_name
ADDPRIMARYKEY(column1);
```
2.设置外键:
-在创建表时设置外键:
```sql
CREATETABLEtable_name1(
column1datatypePRIMARYKEY,
column2datatype,
...
FOREIGNKEY(column2)REFERENCEStable_name2(column3)
);
```
-在已存在的表中添加外键:
```sql
ALTERTABLEtable_name1
ADDFOREIGNKEY(column2)REFERENCEStable_name2(column3);
```
在上述示例中,`table_name`是表的名称,`column1`、`column2`等是表中的列名,`datatype`是列的数据类型,`PRIMARYKEY`用于设置主键,`FOREIGNKEY`用于设置外键,`table_name2`是外键引用的表名,`column3`是外键引用的列名。
请注意,为了设置外键,被引用的表必须已经存在,并且被引用的列必须具有唯一性约束(通常是主键)。此外,MySQL的存储引擎必须是InnoDB,因为只有InnoDB引擎支持外键约束。
mysql怎么设置外键
外键的设计初衷是为了在数据库端保证对逻辑上相关联的表数据在操作上的一致性与完整性。
优点:
精简关联数据,减少数据冗余避免后期对大量冗余处理的额外运维操作。
降低应用代码复杂性,减少了额外的异常处理相关数据管理全由数据库端处理。
增加文档的可读性特别是在表设计开始,绘制ER图的时候,逻辑简单明了,可读性非常强。
缺点:
性能压力外键一般会存在级联功能,级联更新,级联删除等等。在海量数据场景,造成很大的性能压力。比如插入一条新记录,如果插入记录的表有10个外键,那势必要对关联的10张表逐一检查插入的记录是否合理,延误了正常插入的记录时间。并且父表的更新会连带子表加上相关的锁。
其他功能的灵活性不佳比如,表结构的更新等。
外键参照动作列表:
CASCADE:级联,子表跟随父表更新外键值
SETNULL:子表更随主表更新外键值为NULL
RESTRICT/NOACTION:默认,限制父表改动外键值
SETDEFAULT:目前产生的效果和RESTRICT相同。
关于在MySQL中如何设置主键和外键,mysql老师不建议使用外键的介绍到此结束,希望对大家有所帮助。