【发布时间】:2016-01-05 10:07:46
【问题描述】:
需要讨论一种方法:
我们在 oracle 表中有一个 count 列。列的数据类型为char(3 Byte)。每次插入一行时,count 列的值都会增加 1(但它不是标识列)。
价值有可能超过999。那么我们该如何处理呢。 到目前为止,我能够证明的方法是:
在运行时增加列数据类型。步骤是:
- 首先,我们将检查值的长度。
- 例如,如果长度为 4,则更改表的列并将列的大小更改为
char(4 BYTE)
人们可以提供的任何更好的方法...
【问题讨论】:
-
只是出于好奇,如果是计数,我想它是一个数字。为什么使用 char 数据类型?
-
使用数字列类型,或使用不会超出大小的任意大字符。
-
永远不要,永远不要在
char或varchar列中存储数字(而varchar总是比char更好的选择) -
始终使用 VARCHAR2 而不是 CHAR 或 VARCHAR。 (绝不应使用 VARCHAR)。