2015-08-20 9 views
6

Ich erstelle eine api, die entweder auf Mongo oder cassandra arbeiten, aus diesem Grund bin ich mit ‚_id‘ als Spaltenname.Cassandra gültige Spaltennamen

Dies ist ein gültiger Name laut Doku sollte:

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.

Allerdings, wenn ich laufen diese Aussage:

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

ich folgende Fehlermeldung zurück:

Invalid syntax at line 1, char 20 

Ist es möglich, Unterstriche in Spaltennamen zu verwenden?

Antwort

4

Unterstriche in Spaltennamen? Ja. Spaltennamen beginnen mit Unterstrichen? Nr

Vom CREATE TABLE documentation:

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

+0

obwohl es laut docs illegal sein sollte, es tatsächlich funktioniert. Bitte sehen Sie meine Antwort – kostja

3

Sie können einen Spaltennamen mit einem Unterstrich beginnen erstellen. Verwenden Sie Zitate:

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

Der Spaltenname _id wird

Sie können zwar, es bedeutet nicht, dass Sie eine solche Spalte haben sollte - Sie müssen mit Anführungszeichen weiterhin in jeder Abfrage es umständlich zu machen:

SELECT "_id" FROM users;