Postgresql Postgres默认值为NULL且为空字符串
如果要插入的值为空,通常使用默认值。有没有办法告诉postgres它也应该在空字符串(“”)上使用默认值?没有,您不能直接这样做 指定默认值的唯一有效方法是:Postgresql Postgres默认值为NULL且为空字符串,postgresql,postgresql-9.2,Postgresql,Postgresql 9.2,如果要插入的值为空,通常使用默认值。有没有办法告诉postgres它也应该在空字符串(“”)上使用默认值?没有,您不能直接这样做 指定默认值的唯一有效方法是: 从插入列列表中省略该列;或 要为插入或更新中的列显式指定关键字DEFAULT NULL或'都不是为列请求默认值的有效方法 如果要用默认值替换NULL或',则必须在。。。对于每一行触发此操作 创建一个通用元组并不是特别简单,因为在为触发器中的NEW元组赋值时,不能使用DEFAULT关键字;相反,您必须在系统目录中查找默认表达式 当然,如
- 从
列列表中省略该列;或插入
- 要为
或插入
中的列显式指定关键字更新
DEFAULT
NULL
或'
都不是为列请求默认值的有效方法
如果要用默认值替换NULL
或'
,则必须在。。。对于每一行触发此操作
创建一个通用元组并不是特别简单,因为在为触发器中的NEW
元组赋值时,不能使用DEFAULT
关键字;相反,您必须在系统目录中查找默认表达式
当然,如果您知道触发器中的默认表达式,并且不介意对特定于它的触发器进行编码,则始终可以在触发器中重复该表达式
总而言之,修复应用程序更好,这样它就遵循了标准,并且不希望DB用默认值替换
NULL
或'
。如果要插入的值为NULL,通常使用默认值。否。如果未发出值,则使用默认值。默认值的默认值为null。好的,我可以尝试使用触发器。您可以使用检查约束或域:创建域非空文本作为文本检查(修剪(值)!=”
然后使用某些列名称非空文本非空
作为列声明。