mysql中外键可以为空么

等等,你说MySQL外键可以为空?这真的很有趣。

我上次在为电子商务项目设计数据库时遇到了这个问题。
当时,该客户表示,它有一个“推荐产品”列表,其中用户命名并推荐了特定产品。
但有些用户可能只是想随口说说,用NULL填充产品,而不必将它们链接到主产品表。
这时,将外键设置为NULL就很有用了,以避免强制数据关联。

但是如果你仔细想想,空的外键实际上会导致一些问题。
查询时您可能必须添加 IS NULL 子句,这使代码变得烦人。
之前有一个这样的项目,但是在写JOIN条件的时候,总是漏掉空的外键,导致数据查找不完整。
最后我把它改成了非空外键。
这完全是一个骗局。

级联删除功能类似。
如果外键为空,则删除子表中的空外键记录不会影响父表。
这样其实可以保留子表数据。
但反过来想,如果子表中有大量空外键,删除父表时会不会觉得浪费空间呢?就数据一致性而言,空外键相关吗?有时工作中事情会变得混乱,这很烦人。

总的来说,我认为如果外键为空,如果可以用非空键替换,最好不要使用它。
查询效率和数据一致性比使用空查询要好。
如果一定要使用的话,要特别注意业务逻辑,不要搞得太复杂,以免验证数据。
代码维护成本也会高很多。
您认为这对您的项目有用吗?

mysql怎么update一个值为null阿

只需使用零来表示您正在谈论的内容即可。
例如,如果更新tblname表并将特定字段设置为空,并且条件为“condition”,则只需编写“set field = null”即可。

上次更改数据库时我做了同样的事情。
当时用的是SQL Server,表名是user_data,更新字段叫status,条件是user_id = 1 001 这是我写的:
sql 更新用户数据 设置状态 = 空 其中 user_id = 1 001 ;
当时我不明白为什么有些人坚持使用常数零。
为什么不直接写零呢?不管怎样,数据库可以识别,执行也正常。
你这样写,别人看代码就明白了。
如果很多人使用它,他们就会知道它可以清理领域。

反正就这样用吧,没什么问题的。

MySQL主键是否允许为空解密空值主键约束mysql中主键能为空吗

主键不允许为空。

这是一个坑。
别相信。
不要这样做。

MySQL怎么通过语句把一个字段设置为NULL

2 02 3 年,某公司数据库发现数据表存在非零约束问题。
解决办法:直接执行updatetableset field=null;确保所有字段值都被清除。