【问题标题】:How to add unique constraint to existing table in Sqlite?如何在 Sqlite 中向现有表添加唯一约束?
【发布时间】:2013-03-08 00:55:31
【问题描述】:

我在 Sqlite 中有一个现有的表。如何为其添加唯一约束?

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    我假设您使用的是 FireFox 的 SQLiteManager,请重新创建表,通常当您已经创建表时它不允许更改约束。

    注意 - 也可以使用代码来完成,这是另一种方式..

    已编辑 见下图

    【讨论】:

    • 再次建表时也没有约束选项
    • 拜托,问题是如何设置唯一约束,我知道它们是约束
    • 我没有使用 Sqlite Manager 从 fireFox 我使用的是 Sqlite 数据库浏览器,如果他们提供像你说的那样的话,让我下载 fire fox 的东西
    • 下载Firefox并搜索扩展SQLiteManager并安装它,安装后你可以在工具菜单中找到它..
    【解决方案2】:

    您不能在 SQLite 中向现有表添加约束,(在 SQL 中有一个选项可以这样做)。您需要使用必要的约束重新创建表。

    sqlite 中的 alter table 命令只有几个选项可用。请查看图片:

    还要检查Sqlite org 参考。


    编辑

    但是,您可以为您的表添加唯一索引以达到相同的效果。 因此,您可以使用以下查询来实现:

    CREATE UNIQUE INDEX your_unique_index ON your_table(column_name);
    

    在大多数情况下,UNIQUE 和 PRIMARY KEY 约束由 在数据库中创建唯一索引。

    参考:SQLite Constraints

    【讨论】:

    • @rogerdpack:是的,当然。我已经更新了我的答案。感谢您的评论:)
    • @downvoter:我想知道你投反对票的原因,以便我改进我的答案。
    • @rogerdpack :) 感谢您告诉我,感谢您帮助我改进我的答案 :) 编码愉快!!!
    【解决方案3】:

    您可以通过创建唯一索引来添加约束:

    CREATE UNIQUE INDEX ux_friend_name ON friend(name);
    

    其中ux_friend_name 是唯一索引名称,friend(name) - 将受此约束影响的表及其列。

    您可以阅读更多here

    【讨论】:

      猜你喜欢
      • 2017-09-04
      • 2013-05-11
      • 1970-01-01
      • 2018-02-20
      • 2017-11-30
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多