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

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.

主站蜘蛛池模板: 乌鲁木齐县| 莆田市| 嵩明县| 彭山县| 景德镇市| 孟州市| 保靖县| 临夏县| 聂拉木县| 抚顺县| 苍山县| 丽江市| 泽州县| 安西县| 乌鲁木齐县| 固阳县| 海阳市| 长岭县| 贵州省| 临夏市| 印江| 南岸区| 兰州市| 齐河县| 赫章县| 蒙山县| 左贡县| 平谷区| 丹凤县| 泸州市| 龙州县| 韩城市| 革吉县| 阳新县| 卓尼县| 确山县| 东至县| 中方县| 上饶市| 平湖市| 尖扎县|