在 Cassandra 查询语言 (CQL) 中,有一个方便的命令称为source
,它允许用户执行存储在外部文件中的 cql 命令。
SOURCE
Executes a file containing CQL statements. Gives the output for each
statement in turn, if any, or any errors that occur along the way.
Errors do NOT abort execution of the CQL source file.
Usage:
SOURCE '<file>';
但我想知道是否可以允许这个外部文件采用额外的输入参数。例如,假设我想开发以下带有两个输入参数的 cql 文件:
create keyspace $1 with
strategy_class='SimpleStrategy' and
strategy_options:replication_factor=$2;
并希望通过以下方式在 cqlsh 中执行此 cql:
source 'cql-filename' hello_world 3
我开发了上面的示例 cql,将其存储在一个名为 的文件中create-keyspace.cql
,并尝试了一些我能想到的可能的命令,但它们都不起作用。
cqlsh> source 'create-keyspace.cql'
create-keyspace.cql:2:Invalid syntax at char 17
create-keyspace.cql:2: create keyspace $1 with strategy_class='SimpleStrategy' and strategy_options:replication_factor=$2;
create-keyspace.cql:2: ^
cqlsh> source 'create-keyspace.cql' hello_world 3
Improper source command.
cqlsh> source 'create-keyspace.cql hello_world 3'
Could not open 'create-keyspace.cql hello_world 3': [Errno 2] No such file or directory: 'create-keyspace.cql hello_world 3'
我能知道CQl是否有这种类型的支持吗?如果是,那么我应该如何正确地做到这一点?