J'essaie d'insérer dans ma table CQL à partir de la ligne de commande. Je suis capable de tout insérer. Mais je me demande si j'ai une colonne timestamp, comment puis-je l'insérer dans la colonne timestamp à partir de la ligne de commande? En gros, je veux insérer l’horodatage actuel chaque fois que j’insère dans ma table CQL -
Actuellement, je suis en train de coder l’horodatage lors de l’insertion dans ma table CQL ci-dessous -
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);
Existe-t-il un moyen d'obtenir l'horodatage actuel à l'aide de fonctions prédéfinies dans CQL afin que, lors de l'insertion dans la table ci-dessus, je puisse utiliser cette méthode pour obtenir l'horodatage actuel, puis l'insérer dans la table ci-dessus?
Vous pouvez utiliser les fonctions temporelles now()
et dateof()
(ou dans les versions ultérieures de Cassandra, toTimestamp()
), par exemple,
INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE)
VALUES ('2', 'elephant', 'SOME_VALUE', dateof(now()));
La fonction now
ne prend aucun argument et génère un nouveau timeuuid unique (au moment où l'instruction qui l'utilise est exécutée). La fonction dateOf
prend un argument timeuuid et extrait l'horodatage incorporé. (Extrait de la documentation CQL sur fonctions timeuuid ).
dateof()
est obsolète en Cassandra 2.2.0-rc2. Pour les versions ultérieures, remplacez son utilisation par toTimestamp()
, comme suit:
INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE)
VALUES ('2', 'elephant', 'SOME_VALUE', toTimestamp(now()));
Dans la nouvelle version de cassandra
, vous pouvez utiliser toTimestamp(now())
, et notez que la fonction dateof
est obsolète.
par exemple
insert into dummy(id, name, size, create_date) values (1, 'Eric', 12, toTimestamp(now()));