【问题标题】:sybase default while table creation null or not null?创建表时sybase默认为null还是不为null?
【发布时间】:2015-12-04 19:04:59
【问题描述】:

我正在使用 proeprty 在 sybase 中创建一个表 “由 varchar(32) 覆盖”。 如果我在创建表时没有将其定义为“null”或“not null”,它是否允许为 null? 我有问题

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [插入 EntityPnlData(nodeId, hierarchyViewId, entityPnlCriteriaId, receivedFeedId, pnlValue, 覆盖)值(?,?,?,?,?,?)];列overriddenBy in 表 EntityPnlData 不允许空值。

但它之前运行良好。我不确定会发生什么变化

【问题讨论】:

  • ASE 中的默认值不是 NULL。我相信它可以改变,但你需要有 DBA 访问权限才能做到这一点。更改表以允许在 overriddenBy 列中使用 NULL 值

标签: sybase


【解决方案1】:

如果您设置数据库选项“默认允许空值”,则列将始终允许 NULL,除非另有明确指定。 您还可以添加 NULL 关键字以允许 NULL,即“create table mytab(mycol varchar(32) null)”。 或者,如果表已经创建,您可以执行“alter table mytab modify mycol varchar(32) [not] null”。后者可能仅适用于 ASE 15.7 或更高版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 2013-12-29
    • 2018-08-23
    • 1970-01-01
    • 2017-10-15
    • 2012-01-18
    • 2018-11-17
    • 2016-12-25
    相关资源
    最近更新 更多