Nat*_*han 44 sqlite alter-table
我需要修改SQLite数据库中的列,但由于数据库已经在生产中,我必须以编程方式执行此操作.根据我的研究,我发现为了做到这一点,我必须做到以下几点.
对于应该相对容易的事情而言,这似乎是一项荒谬的工作量.有没有更简单的方法?我需要做的就是更改现有列的约束并为其指定默认值.
Dan*_*olo 42
这是SQLite的一个众所周知的缺点(不MODIFY COLUMN支持ALTER TABLE),但它在SQLite未实现的SQL功能列表中.
编辑:已删除的位提示它可能在将来的版本中受支持,因为页面已更新,表明不再是这种情况
Dav*_*zzi 22
如果修改不是太大(例如更改varchar的长度),则可以转储db,手动编辑数据库定义并再次将其导入:
echo '.dump' | sqlite3 test.db > test.dump
Run Code Online (Sandbox Code Playgroud)
然后使用文本编辑器打开文件,搜索要修改的定义,然后:
cat test.dump | sqlite3 new-test.db
Run Code Online (Sandbox Code Playgroud)
至于说在这里,这几样功能不受SQLite的实现.
作为旁注,您可以使用选择创建表的两个第一步:
CREATE TABLE tmp_table AS SELECT id, name FROM src_table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63899 次 |
| 最近记录: |