2015-12-03 117 views
0

我正在用sybase创建一个表格 “overriddenBy varchar(32)”。 如果我不在表创建时将其定义为“null”或“not null”,它是否允许为null? 我有问题sybase默认表创建时为空或不为空?

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into EntityPnlData(nodeId, hierarchyViewId,entityPnlCriteriaId,receivedFeedId,pnlValue, overridden)values(?,?,?,?,?,?)];在 表中EntityPnlData不允许空值的列重写。

但它早期工作正常。我不知道可能发生了什么

+0

ASE中的缺省值为NOT NULL。我相信它可以改变,但你需要有DBA访问权限来做到这一点。改变表格以允许overriddenBy列中的NULL值 – Meet

回答

1

如果将数据库选项设置为'默认允许为空',那么除非另有明确规定,列总是允许NULL。 您还可以添加NULL关键字以允许NULL,即“create table mytab(mycol varchar(32)null)”。 或者,如果表已经创建,您可以执行“alter table mytab modify mycol varchar(32)[not] null”。后者可能只能工作在ASE 15.7或更高版本。