1

I create PostgreSQL table from ServiceStack ORMLite class

[Alias("generaljournalline")]
    public class GeneralJournalLine
    {
        [Required]
        [Alias("debitamount")]
        [Default(typeof(decimal), "0")]
        public decimal DebitAmount { get; set; }

        [Required]
        [Alias("creditamount")]
        [Default(typeof(decimal), "0")]
        public decimal CreditAmount { get; set; }
}

How to change Postgres columns debitamount, creditamount from numeric(38,6) to numeric(38,20).

Thanks you.

4

1 回答 1

2

如果找不到其他方法,在 PostgreSQL 中的方法很简单:

 ALTER TABLE generaljournalline ALTER COLUMN debitamount TYPE numeric;

这将完全放弃长度限制。

顺便说一句,我发现在会计软件中通常更容易将金额存储在单个列中(- 用于借方,+ 用于贷方)并在提取时将它们分开。我不确定你是否可以使用 ORM 来做到这一点,除非你先设计表,然后设计视图,然后使用 ORM 与视图交互。主要优点是您不需要使用 CHECK 约束来处理如果有人存储负数会发生什么。毕竟,如果有人将 -100 存储为借方,将 -100 存储为相应的贷方,这意味着什么?

于 2013-11-19T03:01:11.943 回答