Closed hhb0220 closed 1 week ago
我试了一下还是有问题,场景是我表已经建好了且已经有数据,现在新增一个非空字段,由于新增非空字段不设置默认值数据库会报错,所以如果我使用sql:ALTER table table_name add col_name varchar(255) not null default 'default_value' 来做这件事,是没问题的, 而且已有数据的这列都会是设置的默认值. 但是如果使用以上两个属性,无论怎么搭配都达不到这个效果,我log了sql,其中新增列的update语句没有拿到我设置的默认值.至于为什么想达到这个效果,是为了新老数据的这列值保持一定的统一性. 不知道是不是我食用方式还是有问题.
以前的数据处理不了,只能保证新加的数据 ,以前数据 字符串我给的是空
还有疑问提供可以重现的DEMO,我不是很明白你的意思
倒数第二回答我已经了解了。我以为新增字段设置默认值和ALTER table table_name add col_name varchar(255) not null default 'default_value' 这个sql达到的效果一样。我现在的疑问是为什么从直观上,新增字段的默认值处理和数据库原生逻辑不同?用sql给有数据老表添加非空指定默认值字段,应该是很常规的操作。而codefirst这里加字段对默认值的处理结果和原生sql不一致,有点反直觉。想知道是出于什么考虑。感谢解惑🫡
我没办法处理你是字符串还是函数,所以老数据都统一给了默认值,新数据 你用插入会生效
默认值的情况太多了
SqlSugarCore 5.1.4.159 更新到最新版本,按你的要求改了
还有问题吗?
长时间未回复,先关闭,有问题发新的issue,关闭后不会在看
PG数据库在已经生成且有数据的表中添加非空字段并指定默认值,设定的默认值在字段新增的时候无效.