首页 > 数据库技术 > 详细

笔记_SQLite主键

时间:2019-07-16 21:37:49      阅读:76      评论:0      收藏:0      [点我收藏+]

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:指定要创建的表的名称。
  • column1column2:指定要在表中创建的列。
  • constraint_name:指定主键的名称。
  • pk_col1pk_col2… pk_col_n:它指定构成主键的列。

 e.g.创建一个“workers”表,其中worker_id列是表的主键。

技术分享图片

 

添加主键

当没有在CREATE TABLE语句中定义主键时,也可以在创建表后再添加主键。

需要注意的是,不能使用ALTER TABLE语句来创建主键。在SQLite中需要先创建一个与原表一样的新表,并在这个新表上创建主键,然后复制旧表中的所有数据到新表中就可以了。

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:指定要被修表的名称。
  • column1column2:指定要在表中创建的列。
  • constraint_name:指定主键的名称。
  • pk_col1pk_col2… pk_col_n:它指定构成主键的列。
 

 


 

参考:

https://www.yiibai.com/sqlite/primary-key.html

笔记_SQLite主键

原文:https://www.cnblogs.com/aeron99/p/11197597.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!