很多小的问题可能在别人看来都不值得一写,但是每次收获点东西的时候我都迫不及待的想要写出来,嘿嘿,原谅一个神马都不懂又很想炫耀的人儿吧。。。这次还是一个有关数据库的问题,很小的问题,但是不管多小,至于我来说都是莫大的收获。。。问题是这样的。
【原因】 “不能将NULL值插入列ID,表ligin.dbo.scores;表不允许有Null值。。insert失败。。。看样子是有null值插入到不允许为空的字段中去了。。。怎么回事呢。。仔细看了一下上边的代码才发现,原来是当我要给用户增加积分的时候,插入字段的时候只插入了"name"和“score"...当我看我的数据库中score这张表时,其实 是有三个字段的,分别是ID、name 、score。而且最重要的是,ID是主键,这个不能变,既然是主键就肯定不能为空,但是我们只插了其他的两个字段值,那么这样给ID的就只能为NULL值了,当然数据库不能同意。想想要不让ID 允许为空得了,这样就好了,但是想到这一点就想抽自己嘴巴了,它是主键昂,怎么能为空呢。。。这就是我看视频的时候马虎了,人家在设计这的数据库的时候有一个小小的细节,那就是将ID这个字段设计为标识。。
【理解】标识是什么呢。也就是表明它会自动的被系统自增,这样,当我们插入仅两个字段的时候,系统会按照顺序将ID赋给一些编号,标识增量为一,也就是每次增长一。。。ID号就会按照顺序变成1、2、3、4.。。。。
【总结】这是一个很小的数据库问题,以前主键不能为空,我都学过,而且也非常明白其中的原理,但是一到实践的时候就容易把这些忘的一干二净,所以说实践是检验真理的唯一标准,这样我们才能说对原理理解的深刻。。现在的感受就是希望自己能够多遇到点问题,很享受这个过程。。。加油。