如果我正确理解“NOT NULL”用于任何可以在表创建时写入的数据,并且如果有需要的colunm数据但是在创建表之后要写入,则需要为DEFAULT NULL或NOT NULL DEFAULT'xxx'?
Usecase是会话表。 用户登录时会写入该行。因此,此时我们会写日期,IP,会话ID,成员ID等。但是当用户注销时,我需要编写结束日期时间,即他所在的最后一页,注销模式等
因此,对于这些结束colunms,如果我使用NOT NULL,则在创建行时没有值写入。我是正确的还是我错过了关于如何编写数据的内容?
答案 0 :(得分:0)
如果将这些结束列设置为NOT NULL,那么当您尝试在用户登录时写入数据时,数据库将引发异常。将列设置为NOT NULL意味着在插入新行时它们不能为NULL。在您的情况下,您希望将结束列(结束日期时间,最后一页等)设置为可为空,而将日期,IP,会话ID,成员标识等列设为非空。
答案 1 :(得分:0)
您可以使用默认值,也可以将结束日期移动到新表,以便不必在开始日期的同时填充它。通常,这两个选项中的任何一个都比具有空日期更可取。