本文概要
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: 指定构成主键的列的名称。
评论前必须登录!
注册