我试图向cassandra插入一个特定的timeuuid,我设法插入的唯一方法是使用now()函数,因为我假设,now函数知道数据库喜欢它的格式。
如何为此创建cqlsh命令?
目前我有这个:
INSERT INTO my_table (tid) VALUES ( now() )
但是,当我正在调试node.js或任何连接cassandra的程序时,我希望能够100%控制我为测试目的插入的日期。
如果有这样的话会很好:
INSERT INTO my_table (tid) VALUES ( 12/OCTOBER/2014 )
没有它崩溃
谢谢!
答案 0 :(得分:3)
timeuuid是一种复杂的格式。有效值描述为here。
timeuuid
Uses the time in 100 nanosecond intervals since 00:00:00.00 UTC (60 bits), a
clock sequence number for prevention of duplicates (14 bits), plus the IEEE 801 MAC
address (48 bits) to generate a unique identifier. For example:
d2177dd0-eaa2-11de-a572-001b779c76e3
This对timeuuid
进行了很好的讨论。我不知道这些位出现的顺序,但如果是从左到右,你可以连续:
时间(前15位= 60位): 00000000-0000-000
序列(接下来的3位= 12位,忽略序列的最后2位): 0-00
最后2位序列+ MAC : 000-000000000000
然后根据条目增加时间或序列。但是使用时间戳可能要容易得多。
如果你想这样做:
INSERT INTO my_table (tid) VALUES ( "2014-10-12" )
您需要使用timestamp
类型。
答案 1 :(得分:2)
查看minTimeuuid
和maxTimeuuid
个功能。插入结果是一个坏主意,但出于测试目的,它可以没问题。
答案 2 :(得分:2)