Nic*_*k_F 34 sqlite sqlitemanager
我正在启动一个涉及小型数据库的项目,我正在考虑使用SQLite.如果我创建一个表并将其中一个列定义为文本,但存储的所有值都是整数 - 有没有办法更改列的数据类型?我正在使用SQLite Manager,我找不到允许我这样做的功能.我可以使用SQL命令执行此操作,还是SQLite的限制?也许,即使有这个限制,人们也可以找到一些方法来创建一个包含所需列类型的新表,然后将数据导入其中.
问候,尼克
zee*_*zee 45
SQLite不完全支持ALTER TABLE语句.您唯一能做的就是重命名表和/或添加列.如果要重命名列,最好的选择是使用新列datatype/names创建一个新表,并删除旧表以重命名新表.
可以说,你有一个表,需要将"field-1"重命名为"field-2":首先== >>重命名旧表:
ALTER TABLE original RENAME TO tmp;
Run Code Online (Sandbox Code Playgroud)
现在基于旧表创建新表,但使用更新的列名:
== >>创建一个包含更新列的表
CREATE TABLE original(
field_a INT
, field_b INT
);
Run Code Online (Sandbox Code Playgroud)
然后从原始表中复制内容.
INSERT INTO origignal(field_a, field_b)
SELECT field_a, field_b
FROM tmp;
Run Code Online (Sandbox Code Playgroud)
最后,放下旧桌子.
DROP TABLE tmp;
Run Code Online (Sandbox Code Playgroud)
不,没有"快速"的方法来使用SQLite.不像你可以使用MySQL.您将不得不删除该表,然后重新添加它.
另外要记住的是,SQLite对于可以放入每个部分的数据类型非常灵活.以下是描述数据类型及其工作原理的链接:http://www.sqlite.org/datatype3.html
另一个选择可能是使用MySQL,如果您所说的功能对您来说是一个大问题.它仍然是免费的,非常适合小型项目.