在使用表之前,我需要验证表的模式是否与执行代码完全对应。我知道有一个命令.schema tablename
,其结果可以进行散列并与实际模式的散列进行比较。问题是存储的模式包含创建表时使用的所有过多的字符(重复选项卡,空格,换行符号),如果我将在下一版本的代码中更改模式中的空格数,表格不会被识别。
我不想手动解析每个列的所有属性。
我不能通过split& join或regexp删除重复的空格,因为有时它们不会重复但仍然过多(例如,靠近开括号)。
这看起来是一个非常常见的任务 - 验证表的架构 - 但我看不出有效实现的方法。
UPD
我正在考虑的另一种可能方式:创建一个临时表,并使用一些内部sqlite函数将其模式与目标表进行比较。可以吗?
答案 0 :(得分:2)
可能的解决方案:PRAGMA schema_version;
或PRAGMA user_version;
commands。
有一些使用它们来验证表格方案的变体,但我相信你会找到合适的方法