cassandra - santana - el tiempo en santa ana, california 92704
¿Cómo obtener la marca de tiempo actual con CQL al usar la línea de comandos? (2)
Estoy tratando de insertar en mi tabla CQL desde la línea de comando. Puedo insertar todo. Pero me pregunto si tengo una columna de marca de tiempo, ¿cómo puedo insertarla en la columna de marca de tiempo desde la línea de comando? Básicamente, quiero insertar la marca de tiempo actual cada vez que estoy insertando en mi tabla CQL -
Actualmente, estoy hardcoding la marca de tiempo cada vez que estoy insertando en mi tabla CQL debajo -
CREATE TABLE TEST (ID TEXT, NAME TEXT, VALUE TEXT, LAST_MODIFIED_DATE TIMESTAMP, PRIMARY KEY (ID));
INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) VALUES (''1'', ''elephant'', ''SOME_VALUE'', 1382655211694);
¿Hay alguna forma de obtener la marca de tiempo actual usando algunas funciones predefinidas en CQL para que, al insertar en la tabla anterior, pueda usar ese método para obtener la marca de tiempo actual y luego insertarla en la tabla anterior?
En la nueva versión de cassandra
podría usar toTimestamp(now())
, y tenga en cuenta que la función dateof
está en desuso .
p.ej
insert into dummy(id, name, size, create_date) values (1, ''Eric'', 12, toTimestamp(now()));
Puede usar las funciones de timeuuid now()
y dateof()
(o en versiones posteriores de Cassandra, toTimestamp()
), por ejemplo,
INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE)
VALUES (''2'', ''elephant'', ''SOME_VALUE'', dateof(now()));
La función now
no toma argumentos y genera un nuevo timeuuid único (en el momento en que se ejecuta la instrucción que lo usa). La función dateOf
toma un argumento de timeuuid y extrae la marca de tiempo incrustada. (Tomado de la documentación de CQL sobre funciones de timeuuid ).
Cassandra> = 2.2.0-rc2
dateof()
fue desaprobado en Cassandra 2.2.0-rc2. Para versiones posteriores, debe reemplazar su uso por toTimestamp()
, de la siguiente manera:
INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE)
VALUES (''2'', ''elephant'', ''SOME_VALUE'', toTimestamp(now()));