假设我创建了一个这样的表。
CREATE TABLE Vehicle
并将一些文档插入此表。
INSERT INTO Vehicle
<< {
'VIN' : '1N4AL11D75C109151',
'Type' : 'Sedan',
} >>
所以我的要求是将表名从Vehicle 更改为 VehicleCar并希望将“VIN”更改为“VID”
我怎样才能做到这一点?
谢谢,大顺。
假设我创建了一个这样的表。
CREATE TABLE Vehicle
并将一些文档插入此表。
INSERT INTO Vehicle
<< {
'VIN' : '1N4AL11D75C109151',
'Type' : 'Sedan',
} >>
所以我的要求是将表名从Vehicle 更改为 VehicleCar并希望将“VIN”更改为“VID”
我怎样才能做到这一点?
谢谢,大顺。
QLDB 目前不提供 ALTER TABLE 功能。您必须删除表并重新创建它。这会影响您的赌桌限制,所以不要经常这样做。
QLDB 是无模式的,因此您可以随时更改您的字段名称和/或文档的结构,只需以新格式为您的文档编写新的修订。然而,该期刊仍将包含旧的修订。如果您的应用程序有任何使用 history() 函数来访问旧版本的功能,那么它需要能够优雅地处理文档格式的变化。
需要注意的是,QLDB 并未针对扫描大量数据进行优化。它针对使用相等运算符的索引的目标查询进行了优化。像“SELECT * FROM table”这样的查询将扫描整个表。这是 QLDB 的反模式,并且随着您的分类帐的增长将不会很好地执行。因此,如果您更改文档格式,运行 SELECT * 并将每个文档更新为新格式可能比您意识到的要多。首先,该 SELECT * 扫描查询可能会超时,或者它可能因乐观并发控制异常而中止,因为另一个进程在表中插入了一个文档。其次,由于事务中文档数量的限制,您必须一次分批处理 40 个文档。
所有这一切都是说使您的应用程序对模式更改具有弹性是一个好主意。:-)