sqlite3更改列的默认值

ken*_*tor 13 sqlite

如何在sqlite3中更改表中现有列的默认值?

我有一个名为notesboolean列的表hidden.默认设置为true,我想将其设置为false.

mu *_*ort 22

我不认为你可以不更换整个表.从精细手册:

SQLite未实现的SQL功能

完整的ALTER TABLE支持
支持 ALTER TABLE命令的RENAME TABLE和ADD COLUMN变体.省略了其他种类的ALTER TABLE操作,例如DROP COLUMN,ALTER COLUMN,ADD CONSTRAINT等.

因此无法修改SQLite中的现有列.我认为您必须使用适当的默认值创建一个新表hidden,复制所有数据,删除原始notes表,然后重命名新表.

SQLite通过有目的地省略了许多功能而保持精益.

  • 在这方面,有一点可能有所帮助.在运行`drop table <table_name>`之前,请确保运行`.dump`并获取架构转储和数据.然后,您可以使用它快速创建修改后的架构并获取数据. (2认同)