Node.jsのCassandraドライバーを使用してこのスクリプトを実行しようとしています。
CREATE KEYSPACE IF NOT EXISTS "user"
WITH REPLICATION = {
'class': 'SimpleStrategy',
'replication_factor': 1
}
AND DURABLE_WRITES = false;
USE "user";
CREATE TYPE IF NOT EXISTS "user"."customType"(
"name" text,
"isGood" boolean,
);
しかし、それは私に次のエラーを返します:
[USE]...)rror: line 8:0 mismatched input 'USE' expecting EOF (...AND DURABLE_WRITES = false;
問題は別のクエリにあると思います。しかし、そうですか?そして、解決策は何ですか?
更新
バッチクエリは機能しません。これを取れInvalid statement in batch: only UPDATE, INSERT and DELETE statements are allowed
CQLドライバーは、一度に1つのステートメントの実行のみをサポートします。
したがって、あなたの場合、それは次のようなものになります:
async function createSchema() {
await client.execute('CREATE KEYSPACE user ...');
await client.execute('USE user');
await client.execute('CREATE TYPE IF NOT EXISTS ...');
}
または、スキーマを含む大きな文字列を使用して、JavaScriptで分割を行うこともできます。
async function createSchema(schema) {
const queries = schema.split(';');
for (const query of queries) {
await client.execute(query);
}
}
CQLドライバーでは、各ステートメントの最後のセミコロンは必須ではないことに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加