- Learning Apache Cassandra(Second Edition)
- Sandeep Yarabarla
- 319字
- 2021-07-03 00:19:36
Working with static columns
Let's say that we've decided, in our MyStatus application, that when a user creates a new account, we also require them to create an initial status update. In this workflow, we'll end up creating a new user record at the same time as when we create their first status update, which is to say that we'll be populating all the columns of the users_with_status_updates table in a single statement:
INSERT INTO "users_with_status_updates"
("username", "id", "email", "encrypted_password", "body")
VALUES (
'alice',
76e7a4d0-e796-11e3-90ce-5f98e903bf02,
'alice@gmail.com',
0x8914977ed729792e403da53024c6069a9158b8c4,
'Learning Cassandra!'
);
It's worth emphasizing that even though this is a single INSERT statement, we're actually doing two separate things:
- Assigning the email and encrypted_password values to every row whose username value is alice
- Creating a new row in the alice partition, with Learning Cassandra! as the value of body
Let's take a look at the contents of the table so far:
SELECT * FROM "users_with_status_updates";
Looking at the output, we'll observe that it's just what we'd expect (I've omitted the encrypted_password column to save space):
The single row shown in the preceding figure is precisely what we wrote with the INSERT statement earlier. So far, we haven't seen any special behavior for static columns. To see static columns in action, let's add another status update to the table:
INSERT INTO "users_with_status_updates"
("username", "id", "body")
VALUES ('alice', NOW(), 'Another status update');
Note that in this case, we did not specify values for either of the static columns; we provided the partition key, the clustering column, and a value for the non-static data column body. Now, let's take a look at the contents of the table:
SELECT * FROM "users_with_status_updates";
The output is as follows:
Now, the effect of the STATIC column declaration is clear: both rows have the e-mail address we assigned to the first row even though we did not specify an email value in our second INSERT query.
- 32位嵌入式系統與SoC設計導論
- 數據挖掘實用案例分析
- Hands-On Machine Learning with TensorFlow.js
- Python Algorithmic Trading Cookbook
- 視覺檢測技術及智能計算
- 完全掌握AutoCAD 2008中文版:綜合篇
- 精通特征工程
- 系統安裝與重裝
- DevOps:Continuous Delivery,Integration,and Deployment with DevOps
- Ceph:Designing and Implementing Scalable Storage Systems
- 大數據驅動的設備健康預測及維護決策優化
- Implementing Splunk 7(Third Edition)
- 網絡布線與小型局域網搭建
- 運動控制系統
- DevOps Bootcamp