SQLite 主键

2024 年 8 月 29 日 | 阅读 3 分钟

SQLite 主键是一个简单的字段或字段的组合,用于唯一地定义一条记录。一个表只能有一个主键。

主键不应为 NULL 值。


创建主键

主键通常在创建表时创建。我们在执行 CREATE TABLE 语句时定义主键。

语法

参数解释

  • table_name: 它指定要创建的表的名称。
  • column1, column2: 它指定要在表中创建的列。
  • constraint_name: 它指定主键的名称。
  • pk_col1, pk_col2, ... pk_col_n: 它指定组成主键的列。

示例

创建一个表 "WORKERS",其中 worker_id 是主键。


添加主键

当您未在 CREATE TABLE 语句中定义主键,并且您必须稍后添加主键时,使用它。

您不能使用 ALTER TABLE 语句来创建主键。相反,您必须创建一个带有主键的新表,并将所有数据从旧表复制过来。

语法

参数解释

  • Table_name: 它指定一个新表,其中包含主键。
  • Old_table: 它指定必须更改的表。
  • Constraint_name: 它指定 primary_key 的名称。
  • pk_col1, pk_col2, ... pk_col_n: 指定构成主键的列的名称。
  • 示例

    创建一个没有主键的表 "employees"。

    现在,运行以下命令使 "employee_id" 成为主键。

    现在,它会将您的 employees 表重命名为 "old_employees",然后创建一个新表 "employees" 并将所有数据从旧表传输到新表。

    现在您可以删除 "old_employees" 表。


    删除主键

    您不能使用 ALTER TABLE 语句来删除主键。相反,您必须创建一个删除了主键的新表,并将数据复制到这个新表中。

    语法

    参数解释

    • table_name: 它指定要从中删除主键的表的名称。
    • old_table: 这指定原始表的名称,该表将在您创建删除了主键的新表后删除。

    示例

    假设我们有一个现有表 "engineers",其主键为 "engineer_id",我们需要删除该主键。

    现在,运行以下命令以删除主键。

    现在已从现有 "engineers" 表中删除主键。但是原始表现在重命名为 "old_engineers"。

    现在删除 "old_engineers" 表。


    下一个主题SQLite 外键