个性化阅读
专注于IT技术分析

SQLite的主键

本文概要

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

主键不应该是一个NULL值。


创建主键

主键一般在创建表时创建的。我们定义主键在执行CREATE TABLE语句。

句法:

CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],column2 datatype [ NULL | NOT NULL ],......
CONSTRAINT constraint_name PRIMARY KEY (pk_col1,pk_col2,... pk_col_n)
);

参数说明:

  • table_name的:它指定要创建表的名称。
  • 列1,列2:它指定要在表中创建列。
  • CONSTRAINT_NAME:它规定了主键的名称。
  • pk_col1,pk_col2,… pk_col_n:它指定组成主键的列。

例:

创建表“工人”,其中worker_id是主键。

CREATE TABLE WORKERS
( worker_id INTEGER PRIMARY KEY,last_name VARCHAR NOT NULL,first_name VARCHAR,join_date DATE
);

添加主键

当你还没有定义在CREATE TABLE语句主键它是用来,你必须在以后添加主键。

不能使用ALTER TABLE语句创建一个主键。相反,你必须创建一个主键的新表和旧表复制所有数据。

句法:

PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE table_name RENAME TO old_table;
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],column2 datatype [ NULL | NOT NULL ],...
CONSTRAINT constraint_name PRIMARY KEY (pk_col1,pk_col2,... pk_col_n)
);
INSERT INTO table_name SELECT * FROM old_table;
COMMIT;
PRAGMA foreign_keys=on;

参数说明:

  • Table_name: 它指定一个包含主键的新表。
  • Old_table: 它把必须更改的表格填满了。
  • Constraint_name:它指定primary_key的名称。
  • pk_col1,pk_col2,… pk_col_n: 指定构成主键的列的名称。
赞(1)
未经允许不得转载:srcmini » SQLite的主键

评论 抢沙发

评论前必须登录!