javascript - Cassandra 错误: Undefined column name apparently due to case sensitivity despite consistent case in JavaScript

标签 javascript sql database cassandra cql

我在 JavaScript 文件中执行 Cassandra CQL 语句,其中包含多个参数,包括网络接口(interface)文本:

client.execute("CREATE TABLE IF NOT EXISTS testdb.networkData (latitude DOUBLE, longitude DOUBLE, allowsVoIP BOOLEAN, speed DOUBLE, uuid TEXT, timestamp TIMESTAMP PRIMARY KEY, networkType TEXT, carrierName TEXT, altitude DOUBLE, macAddress TEXT, publicIP TEXT, ssidLabel TEXT, networkInterfaces TEXT)", function (err, result) {
    if (!err){
        if ( result.rowLength > 0 ) {
            var data = result.rows[0];
            console.log("Total rows : "+ data.count);
        } else {
            console.log("No rows");
        }
    }else{
        console.log("count results err : "+err);
    }
});

出现网络接口(interface)的所有其他实例都使用相同的“networkInterfaces”大小写。这包括将数据插入表的代码:

// TODO: Save LAN interfaces as well
const recordCommand = 'INSERT INTO testdb.networkData (latitude, longitude, allowsVoIP, speed, uuid, timestamp, networkType, carrierName, altitude, macAddress, publicIP, ssidLabel, networkInterfaces) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
const params = [
    request.body.latitude,
    request.body.longitude,
    request.body.allowsVoIP,
    request.body.speed,
    request.body.uuid,
    request.body.timestamp,
    request.body.networkType,
    request.body.carrierName,
    request.body.altitude,
    request.body.macAddress,
    request.body.publicIP,
    request.body.ssidLabel,
    request.body.networkInterfaces
];

client.execute(recordCommand, params, { prepare: true }, function (error) {
    assert.ifError(error);
    //Inserted in the cluster
  });

然而,当执行该命令时,它表示存在以下未处理的错误:

Error: Undefined column name networkinterfaces

未定义的列名称似乎是大小写不匹配,但 networkInterfaces 的所有实例都具有相同的大小写。会不会还有其他问题?

最佳答案

Cassandra 默认会将所有表/列名称转换为小写。 如果需要区分大小写的表/列名称,请将其括在双引号中。 使用 desc table_name 检查表详细信息。

Eg:
Create table test(Column1 text primary key,"Column2" text);
 will result in cassandra table with 2 columns (column1 [Note all are lower case] and Column2 [C is uppercase])

关于javascript - Cassandra 错误: Undefined column name apparently due to case sensitivity despite consistent case in JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843538/

相关文章:

javascript - 警告 : next-head-count is missing

javascript - 维基百科 API - 词义

javascript - 跨源读取阻止 (CORB) API 调用 Chrome 扩展

javascript - 将 EXIF 数据写入图像流 Node.js

sql - 什么时候 `x IS NOT NULL` 和 `NOT(x IS NULL)` 不一样

sql - 使用EXISTS的SQL语法错误

c# - 新查询返回的架构与基本查询不同 (C#/SQL - VS 2012)

php - 如何设置 php 以便将数据插入数据库?

database - 通过 API 或网页公开数据库自动递增的 ID

如果 id 不重复,则 MySql 触发器将记录插入另一个表中