2015-08-20 25 views
6

Sto creando un'API che funzionerà su mongo o cassandra, per questo motivo sto usando '_id' come nome di colonna.Nome colonna valido Cassandra

Questo dovrebbe essere un nome valido Secondo la documentazione:

Keyspace, column, and table names created using CQL can only contain alphanumeric and underscore characters. User-defined data type names and field names, user-defined function names, and user-defined aggregate names created using CQL can only contain alphanumeric and underscore characters. If you enter names for these objects using anything other than alphanumeric characters or underscores, Cassandra will issue an invalid syntax message and fail to create the object.

Tuttavia, quando si esegue questa dichiarazione:

CREATE TABLE users(_id: bigint, entires: map<timestamp, text>, PRIMARY KEY(_id)); 

torno il seguente errore:

Invalid syntax at line 1, char 20 

È possibile utilizzare caratteri di sottolineatura nei nomi delle colonne?

risposta

4

Spiegazioni in nomi di colonne? Sì. I nomi delle colonne iniziano con caratteri di sottolineatura? No.

Dal CREATE TABLE documentation:

Valid table names are strings of alphanumeric characters and underscores, which begin with a letter.

+0

anche se dovrebbe essere illegale come da documenti, in realtà funziona. per favore vedi la mia risposta – kostja

3

È possibile creare un nome di colonna inizia con un carattere di sottolineatura. Utilizzare le virgolette:

CREATE TABLE users("_id": bigint, entires: map<timestamp, text>, PRIMARY KEY("_id")); 

Il nome della colonna sarà _id

Anche se è possibile, non significa che si dovrebbe avere una tale colonna - è necessario continuare a utilizzare le virgolette in ogni query che lo rende ingombrante:

SELECT "_id" FROM users;

Problemi correlati