数据库的相关

本文探讨了在数据库中处理外键约束时遇到的问题,特别是在删除带有外键的记录时的逻辑。提出了两种解决方案:一是解除外键约束,二是设置删除前后的外键检查开关。此外,还提到了数据库时间戳字段的使用,以及如何设置精确到秒的时间戳。同时,文章还涉及了数据库连接超时和乱码问题的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加表出现不能添加

唯一键值对,应该设置自增

删除带有外键的表

      在一对多模式下(如,老师对应学生),在对多的这一方的设计中,学生表中要添加这个老师的id号作为外键值。 但是,在进行删除老师的操作的时候,必须删除这个老师所教的所有学生的信息之后才能删除这个老师。数据库的逻辑来看是合理的,而且必须这么做才能删除掉这个老师信息,因为外键的原因。 但是,从实际来看,现实生活中,辞退了一个老师,会把所有学生也给退学吗?显然不可能的。因此就这点而言有以下解决办法。


第一,可以不约束,直接将老师的id写入学生表中,只要不foreign key,相当于多添加了个字段,但意义确实老师的id。(私约非约)
第二,约束。
在删除老师信息之前

-- 删除约束
SET FOREIGN_KEY_CHECKS=0; 

删除老师信息后

-- 恢复约束
SET FOREIGN_KEY_CHECKS=1;

Ideal链接数据库出现的timeoutZone

解决办法:

mysql -hlocalhost -uroot -p
 show variables like'time_zone';
 set global time_zone='+8:00';

在这里插入图片描述

不同连接数据库方式导致的乱码解决方法

首先,用连接池连接数据库导致乱码,又不能用&分隔各个utf-8的设置,正确命令:

?useSSL=false&useUnicode=true&characterEncoding=utf-8

其次,用以properties结尾的文件配置的时候乱码,正确命令

?useUnicode=true&characterEncoding=utf-8&userSSL=false

精确到秒的时间戳TIMESTAMP

当字段定义为timestamp ON UPDATE CURRENT_TIMESTAMP,表示该字段在插入且未指定值时被赋值为"0000-00-00 00:00:00",在更新且未指定值时更新为当前时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值