早上好

我对Sybase ASE 12中的默认值和NULL值有疑问。总而言之:我继承了一个非常老的Sybase数据库以及位于其之上的PowerBuilder前端。有问题的表之一包含具有默认值以及非null约束的几列。因此,每当未提供任何值(注意:不是NULL值)时,PowerBuilder都会创建适当的insert / update语句,并且不会为这些空字段传递值,然后这些空字段将由数据库自动为其分配默认值。肉汁。

现在,问题是:已决定通过前端将审核添加到整个应用程序(我知道这是个好主意,但我的选择不是)。编写了一个函数来抽象审计过程,但问题出在以下事实:它没有将用户输入视为NULL值,并在审计表中生成了一条插入语句(也用not null约束定义),提供了文字NULL这些空列。然后,Sybase将看到文字NULL,并且众所周知,它将NULL视为一个值而不是“无条目”。

那么问题是:是否可以从数据库侧将NULL条目默认为默认值?我已经考虑过触发器,但是我希望我会很幸运,并且可以使用某种形式的表级构造。

谢谢您的时间和考虑。

参考文献:
有关问题的一个很好的例子
http://www.sybaseteam .com / null-not-nothing-difference-between-null-nothing-sybase-t-390.html

请参阅表7-1(位于页面中间)。
http ://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@ebt-link; pt= 20741?target=%25N%15_19279_START_RESTART_N%25

有帮助吗?

解决方案

我认为您需要使审核功能更智能。它应该只记录用户更改的列。这很容易通过getitemstatus来确定。您可以使用采用整数列号的getitemstatus形式遍历各列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top