SQLite - 改变表的列类型?

时间:2014-01-18 02:49:30

标签: sqlite sqlitemanager

我正在启动一个涉及小型数据库的项目,我正在考虑使用SQLite。 如果我创建一个表并将其中一个列定义为文本,但存储的所有值都是整数 - 有没有办法更改列的数据类型?我正在使用SQLite Manager,我找不到允许我这样做的功能。我可以使用SQL命令执行此操作,还是SQLite的限制? 也许,即使有这个限制,人们也可以找到一些方法,创建一个包含所需列类型的新表,然后将数据导入其中。

此致 尼克

4 个答案:

答案 0 :(得分:42)

SQLite不完全支持ALTER TABLE语句。您唯一能做的就是重命名表和/或添加列。如果要重命名列,最好的选择是使用新列datatype / names创建一个新表,并删除旧表以重命名新表。

可以说,你有一张桌子,需要将“field-1”重命名为“field-2”: 首先==>>重命名旧表:

    ALTER TABLE original RENAME TO tmp;

现在根据旧表创建新表,但使用更新的列名称:
==>>创建一个包含更新列

的表
    CREATE TABLE original(
    field_a INT
   , field_b INT
    );

然后从原始表格中复制内容。

   INSERT INTO origignal(field_a, field_b)
   SELECT field_a, field_b
   FROM tmp;

最后,放下旧桌子。

   DROP TABLE tmp;

答案 1 :(得分:5)

不,使用SQLite没有“快速”的方法。不像你可以使用MySQL。您将不得不删除该表,然后重新添加它。

要记住的另一件事是,SQLite对于可以放入每个部分的数据类型非常灵活。以下是描述数据类型及其工作原理的链接:http://www.sqlite.org/datatype3.html

如果你所说的功能对你来说很重要,那么另一种选择可能就是使用MySQL。它仍然是免费的,非常适合小型项目。

答案 2 :(得分:0)

更改SqliteManger中的表

步骤

  1. 在sqlite manage中打开数据库
  2. 双击表名
  3. 会弹出改变窗口。

答案 3 :(得分:-2)

使用sqllite manager 3.5双重clic在您需要修改的表上