sqlite3 表创建后设置主外键 联合主键 外键设置
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 表创建后设置主外键 联合主键 外键设置相关推荐
- sql 复合主键 联合主键_学习SQL:主键
sql 复合主键 联合主键 If you've already worked with databases, then you could hardly miss the term – Primary ...
- sql 设置主键 联合主键
alter table yourtable add ConstaintName primary key(columnName) /*ConstaintName 数据类型 yourtable 表名 ...
- Mysql 主键 联合主键 索引 唯一索引 被抠细节问死的问题
1.一张表中可以有几个主键? 答:一个. 2.那联合主键是什么? 答:一张表多个主键,就是联合主键,可以由多个列形成联合主键,但是主键只能有一个 3.主键作用是什么? 答:主键的作用是保证数据的唯一性 ...
- springboot jpa 复合主键 联合主键
为什么80%的码农都做不了架构师?>>> 在开发中,数据库中定义了一个复合主键,这时候在映射不稍微处理下会有一点问题.什么does not define an IdClass错 ...
- 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量
文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...
- python字典添加主键_Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)...
主键的创建方式 1. create tablestud( idint not null unique, namevarchar(20) ); mysql> descstud;+-------+- ...
- 主键、外键、唯一键、联合主键
主键 主键:表中记录的唯一标识.如:表中的member_id就是主键 外键 外键:依赖于别的表的数据,也就是B表中的某个字段是A表中的主键.如:ds_goods(商品表)表中的brand_id就ds_ ...
- 数据库三范式(联合主键)
数据库设计的三大范式~联合主键 什么是范式 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中 ...
- mysql联合主键语句6_初探SQL语句复合主键与联合主键
一.复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键. 比如 create table test ( name varchar(19), id nu ...
- mysql联合主键_初探SQL语句复合主键与联合主键
一.复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键. 比如 create table test ( name varchar(19), id nu ...
最新文章
- 景观设计主题命名_好听的景观名字
- 【小白学习C++ 教程】三、C++用户输入、判断语句和switch
- matlab处理中文路径
- python-玉米(小米)商城作业
- leetcode167. 两数之和 II - 输入有序数组
- vue项目实践教程1:vux项目搭建和简介
- 装修公司都有什么套路?
- url请求特殊字符转换
- MySQL对含有中文字符的字段排序
- DevExpress 设计Ribbon界面
- ASP与JSP的比较
- Baklib每日分享|在线产品手册的制作技巧
- iPhone上的电子表格软件
- 可数集合与不可数集合的理解(准大学生初学者)
- 机械设备租赁平台如何快速进行商户号分账?
- 认识机器学习与深度学习
- 中古调式(调式音阶)
- MIPI RFFE协议使用不完全指南(附上代码详解和参考资料)第一部分
- 基于视觉的动态手势轨迹跟踪
- 10个优质免费PPT模板下载网站推荐
热门文章
- 单尺度Retinex
- linux中孚软件,中孚主机监控与审计系统
- Vant组件库 引入 阿里矢量图 添加自己喜欢的 ICON
- java异或运算_java中异或怎么运算?
- 【HCIE安全】双机热备-主备备份
- 06540计算机网络2018年自考真题,自考06540计算机网络基本原理复习资料二
- 解决Tomcat显示中文乱码问题
- java class文件比较_Beyound Compare中比较java字节码class文件
- 西门子g120变频器接线图_西门子G120变频器通过IOP-2面板快速启动
- C++ 软件备份(拷贝构造函数)