SQLite创建表语句的解析器

2021-01-29 03:24:15

Warning: Can only detect less than 5000 characters

PRAGMA外键= off;开始交易; ALTER TABLE old_table重命名为temp_table; / *可以通过解析old_table并使用此存储库提取所有相关信息来重新创建new_table * / CREATE TABLE new_table(column_definition,...); INSERT INTO new_table(column_list)从temp_table中选择column_list; DROP TABLE temp_table;承诺; PRAGMA foreign_keys =开;

解析器运行很快,主要是因为执行的内存分配很少,并且在sql字符串和内部sql3string结构之间不使用复制操作。内存需求与表中的列数成线性比例。

您可以使用以下公式估算内存使用量(在64位系统上):N1:没有外键约束的列数N2:有外键约束的列数N3:表约束中的索引列数K:如果没有外键则为0使用约束或64内存使用情况(以字节为单位):144 +(N1 * 144)+(N2 * 208)+(N3 * 40)+ K

如果您对我的其他GitHub项目感兴趣,那么请看一下Gravity编程语言。