39

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

问候,尼克

4

4 回答 4

65

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

假设您有一个表,需要将“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;
于 2014-01-18T03:06:57.427 回答
5

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

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

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

于 2014-01-18T02:55:42.443 回答
-1

在 SqliteManger 中更改表

脚步

  1. 在 sqlite 管理中打开数据库
  2. 双击表名
  3. 将弹出更改窗口。
于 2017-12-08T08:02:11.090 回答
-2

在需要修改的表上使用 sqllite manager 3.5 双击

于 2015-07-14T06:25:53.393 回答