【问题标题】:SQL adding composite primary key through alter table optionSQL通过alter table选项添加复合主键
【发布时间】:2009-08-08 16:37:20
【问题描述】:

我已经为数据库创建了一个表。

表格类似于以下内容(我在 Mac 上为 iPhone 开发者使用 sqlite)

create table
(
attendanceDate   varchar,
studentNo        integer,
absentDetail     varchar
);

现在我已经提交了这些声明。我需要的是以下内容:

  • 添加复合主键 (attandanceDate,studentNo)
  • 添加外键studentNo

我不知道 sqlite3 中的 alter table 语法。

所以,我需要帮助。

提前致谢。

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    SQLITE3 没有语法来做你想做的事。

    来自http://www.sqlite.org/lang_altertable.html 的 SQLITE 文档

    SQLite 支持有限的子集 更改表。 ALTER TABLE 命令 在 SQLite 中允许用户重命名 表或将新列添加到 现有表。这是不可能的 重命名列,删除列,或 添加或删除约束 表。

    您将需要使用定义的复合主键和外键重新创建表。

    【讨论】:

    • 如果我不能改变,我可以删除并重新创建它,是这样吗?
    【解决方案2】:

    当您创建表时,您需要创建主键。据我所知,SQLLite3 不支持外键约束。查看this link 了解更多信息。我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我得到了解决方案,由 R&D 提供。

      我认为,我应该删除我的表并按照以下语法重新创建表,


      创建表 stuAttendance ( attenDate varchar,
      stuNo 整数,
      缺席Desc varchar,
      主键(attenDate,stuNo)
      外键(stuNo) 引用 stuClass(stuNo)
      )

      这将满足我的需要。

      【讨论】:

        猜你喜欢
        • 2012-02-10
        • 2018-10-05
        • 2018-04-27
        • 1970-01-01
        • 2022-01-25
        • 2020-07-09
        • 1970-01-01
        • 1970-01-01
        • 2012-04-28
        相关资源
        最近更新 更多