sqlite3

表创建后的操作

创建后设置主外键
# 执行原生sql语句# 设置主键
conn.execute("alter table tableName add constraint p_key_name primary key (index_code)")# 从表设置外键
conn.execute(f"alter table tableName add  foreign key (index_code) references tableName(index_code)")

表的创建时操作

自增主键
CREATE TABLE w_user(
id integer primary key autoincrement, --自增主键
username varchar(32),
);
联合主键设置样式
CREATE TABLE tb_test (
bh varchar(5),
id integer,
ch varchar(20),
--在创建联合主键时,主键创建要放在所有字段最后面,否则也会创建失败
primary key (id,bh));
外键设置

约束外键的时候 如果主表中的 键不是主键 需要在后面添加描述UNIQUE 不然会报 foreign key mismatch 的错误

因为sqlite3外键默认是关闭的,所以你要使用就要先打开:

PRAGMA foreign_keys = ON
CREATE TABLE IF NOT EXISTS parent (id text PRIMARY KEY NOT NULL UNIQUE);--作为外键,要添加unique(如果不是主键)CREATE TABLE IF NOT EXISTS child (
id text PRIMARY KEY NOT NULL ,
parentID TEXT,
FOREIGN KEY (parentID") REFERENCES parent(id) ON DELETE CASCADE ON UPDATE CASCADE);

ON DELETE 和 ON UPDATE,表示当发生delete和update时,会发生什么行为

  • NO ACTION:默认的,表示没有什么行为.
  • RESTRICT:当有一个child关联到parent时,禁止delete或update parent
  • SET NULL:当parent被delete或update时,child的的关联字段被置为null(如果字段有not null,就出错)
  • SET DEFAULT:类似于SET NULL (是不是设置默认值?没有试过)
  • CASCADE:将实施在parent上的删除或更新操作,传播给你吧与之关联的child上.
    对于 ON DELETE CASCADE, 同被删除的父表中的行 相关联的子表中的每1行,也会被删除.
    对于ON UPDATE CASCADE, 存储在子表中的每1行,对应的字段的值会被自动修改成同新的父键匹配

sqlite3 表创建后设置主外键 联合主键 外键设置相关推荐

  1. sql 复合主键 联合主键_学习SQL:主键

    sql 复合主键 联合主键 If you've already worked with databases, then you could hardly miss the term – Primary ...

  2. sql 设置主键 联合主键

    alter table yourtable add  ConstaintName primary key(columnName) /*ConstaintName 数据类型  yourtable 表名 ...

  3. Mysql 主键 联合主键 索引 唯一索引 被抠细节问死的问题

    1.一张表中可以有几个主键? 答:一个. 2.那联合主键是什么? 答:一张表多个主键,就是联合主键,可以由多个列形成联合主键,但是主键只能有一个 3.主键作用是什么? 答:主键的作用是保证数据的唯一性 ...

  4. springboot jpa 复合主键 联合主键

    为什么80%的码农都做不了架构师?>>>    在开发中,数据库中定义了一个复合主键,这时候在映射不稍微处理下会有一点问题.什么does not define an IdClass错 ...

  5. 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量

    文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...

  6. python字典添加主键_Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)...

    主键的创建方式 1. create tablestud( idint not null unique, namevarchar(20) ); mysql> descstud;+-------+- ...

  7. 主键、外键、唯一键、联合主键

    主键 主键:表中记录的唯一标识.如:表中的member_id就是主键 外键 外键:依赖于别的表的数据,也就是B表中的某个字段是A表中的主键.如:ds_goods(商品表)表中的brand_id就ds_ ...

  8. 数据库三范式(联合主键)

    数据库设计的三大范式~联合主键 什么是范式 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中 ...

  9. mysql联合主键语句6_初探SQL语句复合主键与联合主键

    一.复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键. 比如 create table test ( name varchar(19), id nu ...

  10. mysql联合主键_初探SQL语句复合主键与联合主键

    一.复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键. 比如 create table test ( name varchar(19), id nu ...

最新文章

  1. 景观设计主题命名_好听的景观名字
  2. 【小白学习C++ 教程】三、C++用户输入、判断语句和switch
  3. matlab处理中文路径
  4. python-玉米(小米)商城作业
  5. leetcode167. 两数之和 II - 输入有序数组
  6. vue项目实践教程1:vux项目搭建和简介
  7. 装修公司都有什么套路?
  8. url请求特殊字符转换
  9. MySQL对含有中文字符的字段排序
  10. DevExpress 设计Ribbon界面
  11. ASP与JSP的比较
  12. Baklib每日分享|在线产品手册的制作技巧
  13. iPhone上的电子表格软件
  14. 可数集合与不可数集合的理解(准大学生初学者)
  15. 机械设备租赁平台如何快速进行商户号分账?
  16. 认识机器学习与深度学习
  17. 中古调式(调式音阶)
  18. MIPI RFFE协议使用不完全指南(附上代码详解和参考资料)第一部分
  19. 基于视觉的动态手势轨迹跟踪
  20. 10个优质免费PPT模板下载网站推荐

热门文章

  1. 单尺度Retinex
  2. linux中孚软件,中孚主机监控与审计系统
  3. Vant组件库 引入 阿里矢量图 添加自己喜欢的 ICON
  4. java异或运算_java中异或怎么运算?
  5. 【HCIE安全】双机热备-主备备份
  6. 06540计算机网络2018年自考真题,自考06540计算机网络基本原理复习资料二
  7. 解决Tomcat显示中文乱码问题
  8. java class文件比较_Beyound Compare中比较java字节码class文件
  9. 西门子g120变频器接线图_西门子G120变频器通过IOP-2面板快速启动
  10. C++ 软件备份(拷贝构造函数)