我想在表中添加一个price列,以便能够存储从0.0
到999999.99
的值。我试过price DECIMAL(8,2)
,但似乎不起作用。如何存储这样的值?
我也想知道是否会有任何前后处理需要,因为我在后端使用NodeJS/TypeScript处理所有的数值,使用number
类型!
我还想知道是否使用字符串类型代替它是一个更好的主意?
编辑:例如,如果我尝试
CREATE TABLE IF NOT EXISTS products.test(
id TEXT PRIMARY KEY,
price DECIMAL(8,2));
我得到:
语法异常:第3行:15输入处没有可行的替代方案'(')(..文本主键,价格小数
但下面的操作没有问题:
CREATE TABLE IF NOT EXISTS products.test(
id TEXT PRIMARY KEY,
price INT);
2条答案
按热度按时间rdlzhqv91#
您可以利用
decimal
类型,甚至在Cassandra中使用float
数据类型。请参阅https://cassandra.apache.org/doc/latest/cassandra/cql/types.html了解更多详细信息。而且,使用NodeJS Driver,https://docs.datastax.com/en/developer/nodejs-driver/latest/features/datatypes/ CQLdecimal
数据类型Map到BigDecimal
JS类型。float
CQL数据类型Map到Number
JS类型等等。zed5wv102#
您的语法不正确,这就是
SyntaxException
的原因。不可能在CQL中指定精度,因为
decimal
类型是可变精度的Java类型。只需将列声明为
decimal
类型,例如:然后处理代码中的精确度。干杯!