- 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.
- 大數據管理系統
- Splunk 7 Essentials(Third Edition)
- Python Artificial Intelligence Projects for Beginners
- 西門子S7-200 SMART PLC從入門到精通
- Getting Started with Containerization
- JMAG電機電磁仿真分析與實例解析
- 大數據安全與隱私保護
- PyTorch Deep Learning Hands-On
- 工業機器人操作與編程
- 愛犯錯的智能體
- PostgreSQL 10 Administration Cookbook
- 單片機C語言應用100例
- C#求職寶典
- 電動汽車驅動與控制技術
- FreeCAD [How-to]