官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 马公市| 淄博市| 扶沟县| 沾化县| 安泽县| 福清市| 达孜县| 壶关县| 阜南县| 长宁县| 唐山市| 株洲市| 台江县| 麦盖提县| 松溪县| 云安县| 堆龙德庆县| 太白县| 杨浦区| 舟曲县| 棋牌| 密云县| 娱乐| 武乡县| 乌拉特前旗| 桐庐县| 宁陵县| 宜黄县| 邯郸县| 临城县| 富民县| 开封市| 汉寿县| 多伦县| 弥渡县| 金坛市| 河北省| 普宁市| 南皮县| 新邵县| 乌鲁木齐县|