pycharm 中sqlite升级方法

news2025/8/22 8:08:22

sqlite 3.21升级到3.40

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help
Type help() for interactive help, or help(object) for help about object.
>>> import sqlite3
>>> print(sqlite3.version_info) #显示sqlite3版本信息
(2, 6, 0)
>>> print(sqlite3.sqlite_version) #显示SQLite版本信息
3.21.0
>>> exit()

升级后

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> print(sqlite3.version_info) #显示sqlite3版本信息
(2, 6, 0)
>>> print(sqlite3.sqlite_version) #显示SQLite版本信息
3.40.0
>>>

--------------------------------------------------

1.下载sqlite-dll-win64-x64-3400000.zip(注意自己系统版本,我的是win10,64),解压到python的安装目录下C:\Program Files\Python37\DLLs,覆盖原有的sqlite3.dll

在python中测试上面代码,已经升级到3.40

下载地址:SQLite Download Page

2.再找到sqlit-jdbc。从github下载,主页: Releases · xerial/sqlite-jdbc · GitHub

链接地址:sqlite-jdbc-3.40.0.0.jar

3.进入C:\Users\Adminstrator\.PyCharm2019.1\config\jdbc-drivers\Xerial SQLiteJDBC,修改jdbc-drivers.xml文件,找到<artifact version="3.31.1" name="Xerial SQLiteJDBC">小节,根据这一节添加如下新的小节

  <artifact version="3.40.0.0" name="Xerial SQLiteJDBC">
    <item name="sqlite-jdbc-3.40.0.0.jar"
          url="https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.40.0.0/sqlite-jdbc-3.40.0.0.jar"
          md5=""/>
    <item name="license.txt" url="https://cache-redirector.jetbrains.com/download.jetbrains.com/idea/jdbc-drivers/sqlite/license.txt" md5=""/>
  </artifact>

4.再该目录里新建3.40.0.0文件夹,再解压sqlite-jdbc-3.40.0.0.jar到该3.40.0.0文件夹中。

5.重启动pycharm找到sqlite,会自动识别3.40.0.0,再找到项目中sqlite的数据库,会自动提示是否升级到最新驱动,点击升级并测试成功。

为何升级sqlite3?

答:项目相应更新数据,但如果记录不存在,需要插入该记录。该语法要求3.24版本。python7使用的是3.21,所以升级。

update可以 搭配on conflict(原文:sqlalchemy之sqlite3之ON CONFLICT DO UPDATE(insert if exists else update或upsert)_欢乐调包侠的博客-CSDN博客_sqlite on conflict)

网页中有如下文字:SQLite Query Language: upsert https://www.sqlite.org/lang_UPSERT.html

UPSERT is a special syntax addition to INSERT that causes the INSERT to behave as an UPDATE or a no-op if the INSERT would violate a uniqueness constraint. UPSERT is not standard SQL. UPSERT in SQLite follows the syntax established by PostgreSQL. UPSERT syntax was added to SQLite with version 3.24.0 (2018-06-04).

------------------------------------------------------------------------------------------------------------ 

在线测试sqlite语法的网页:

SQLite3 Fiddle​​​​​​​​​​​​​​

INSERT INTO phonebook(name,phonenumber) VALUES('Alis','574-334-1212')
  ON CONFLICT(name) DO UPDATE SET phonenumber=excluded.phonenumber;
select * from phonebook

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小哥用Python兼职月入过万,用Python做项目有多赚钱?

问&#xff1a;请问用Python可以接哪些兼职的活赚钱&#xff1f; 1 兼职费用足够学费生活费 恰巧上学期间接过一些外包&#xff0c;恩&#xff0c;足够我和我媳妇的学费以及生活费&#xff0c;以及xx各种费用。 主要干过以下几种&#xff1a; 游戏外挂&#xff1a;主要开发…

Jetpack Compose中的导航路由

Jetpack Compose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持&#xff0c;使用需要单独添加依赖&#xff1a; implementation "androidx.navigation:navigation-compose:$nav_version" Jetpack库中的Navigation使用起来还是比较麻…

毕业时就已26,工作4年就已大龄,码农出路在哪?

边工作边迷茫这可能是我们大多数职场人的常态。一边觉得这份工作不适合自己&#xff0c;另一边又不知道能去做什么。喜欢的工作&#xff0c;却又不知道如何提升。长此以往&#xff0c;内心难免产生焦躁&#xff0c;尤其随着年龄的增长&#xff0c;内心更是希望能够在事业上有所…

MySQL数据库的安装、创建库、创建表、创建测试数据及连接取数

安装MySQL数据库MySQL数据库简介安装MySQL数据库下载安装包安装MySQLMySQL创建一个新的数据库&#xff0c;并在其中创建新的数据表&#xff0c;填充测试数据并查看mysql>模式下输入的每句sql语句都要以;结尾&#xff1b;若多行语句无;&#xff0c;则被默认为一条语句未输入完…

设计好接口的36个锦囊

前言 大家好&#xff0c;我是捡田螺的小男孩。作为后端开发&#xff0c;不管是什么语言&#xff0c;Java、Go还是C&#xff0c;其背后的后端思想都是类似的。后面打算出一个后端思想的技术专栏&#xff0c;主要包括后端的一些设计、或者后端规范相关的&#xff0c;希望对大家日…

redis安装 3台机器 6节点

一&#xff1a; redis官网地址&#xff1a; 6.2.6版本 1 | Index of /releases/http://download.redis.io/releases/ 二&#xff1a; 编辑配置文件 1: 注释本地IP地址&#xff1a; 1&#xff1a; bind: 本地IP 2&#xff1a; protected-mode no: #关闭保护模式 3&#xff1…

KG-构建:知识图谱基础代码构建(医疗向)

项目来源是GitHub上面刘老师做的一个基于知识医疗图谱的问答机器人&#xff0c;本文主要关注点放在建立知识图谱这一侧。这个项目并且将数据集也开源了放在dict和data文件夹下&#xff0c;让我觉得真的很难得&#xff0c;得给老师一个star&#xff01; https://github.com/liu…

智能制造数字化转型难点有哪些?

① 企业高层没有意识到数字化转型的必要性、紧迫性和复杂性&#xff0c;观念还停留在部署常用的IT系统。实际上&#xff0c;数字化转型远远不是IT部门能够实现的&#xff0c;必须由企业的决策层引领&#xff0c;自顶向下推进。 ② 企业已经应用了诸多信息系统&#xff0c;但是…

《MySQL高级篇》九、数据库的设计规范

文章目录1. 为什么需要数据库设计2. 范 式2.1 范式简介2.2 范式都包括哪些2.3 键和相关属性的概念2.4 第一范式(1st NF)2.5 第二范式(2nd NF)2.6 第三范式(3rd NF)2.7 小结3. 反范式化3.1 概述3.2 应用举例3.3 反范式的新问题3.4 反范式的适用场景4. BCNF(巴斯范式)5. 第四范式…

SOLIDWORKS Electrical 2023新功能揭秘!提高电气工程师设计效率 与机械工程师协同设计

SOLIDWORKS 2023新版本已经与大家见面&#xff0c;今天众联亿诚与大家分享SOLIDWORKS Electrical 2023新功能。 电气工程师在完成电气原理图设计的同时&#xff0c;还需要频繁地修改、导出各报表&#xff0c;使得大量时间浪费在重复性的手动工作上。即便如此&#xff0c;也无法…

【Python】Numpy中的Gumbel分布和Logistic分布

文章目录极值分GumbelLogistic分布极值分 设X1,X2…,XnX_1,X_2\dots,X_nX1​,X2​…,Xn​为从总体FFF中抽出的独立同分布样本&#xff0c;且 Mmax⁡(X1,…,Xn),mmin⁡(X1,…,Xn)M\max(X_1,\dots,X_n), m\min(X_1,\dots,X_n) Mmax(X1​,…,Xn​),mmin(X1​,…,Xn​) 若存在Cn&…

【Vue】利用v-model特性封装Dialog弹窗或可编辑窗口。

简单介绍&#xff0c;Vue里面的v-model就是vue的双向绑定的指令&#xff0c;能将页面上控件输入的值同步更新到相关绑定的data属性&#xff0c;也会在更新data绑定属性时候&#xff0c;更新页面上输入控件的值。 v-model封装弹窗 父组件 <manage-dialog v-model"isVis…

8年测试工程师,3年功能,5年自动化,浅谈我的自动化测试进阶之路...

前言 大家好我是小濠&#xff0c;本命马玉濠&#xff0c;已近从事测试行业8年了&#xff0c;自己也从事过3年的手工测试&#xff0c;从事期间越来越觉得如果一直在手工测试的道路上前进&#xff0c;并不会有很大的发展&#xff0c;所以通过自己的努力&#xff0c;早几年已经成…

2022巨量引擎城市峰会:发布重磅白皮书 提升城市繁荣力

12月21日&#xff0c;由巨量引擎城市研究院发起的年度城市盛典——《数说美好城市2022巨量引擎城市主题峰会》在上海隆重启幕。作为巨量引擎旗下专业城市研究机构&#xff0c;巨量引擎城市研究院在峰会期间发布了两份重磅报告:《2022美好城市指数白皮书》以及《2022都市圈发展力…

【Numpy基础知识】通用函数ufunc基础知识

通用函数(ufunc)基础知识 来源&#xff1a;Numpy官网&#xff1a;<https://numpy.org/doc/stable/user/basics.html 文章目录通用函数(ufunc)基础知识导包【1】Ufunc方法【2】输出类型确定【3】广播【4】类型转换规则【5】使用内部缓冲器【6】错误处理【7】覆盖ufunc行为导包…

【布局 widget】OverflowBox 与 SizedOverflowBox

OverflowBox 对于 OverflowBox ,文档只有一句话&#xff1a;把不同的约束强加给 child&#xff0c;允许 child overflow 父容器。这句话说的太简略了&#xff0c;使用的时候还是一头雾水&#xff0c;代码逻辑是这样的: BoxConstraints _getInnerConstraints(BoxConstraints co…

文科专业女生转行程序员月入20k:女生不适合做程序员吗?

背景故事 我毕业于某不知名985的经济学院&#xff0c; 19年毕业就跨考了计算机&#xff0c; 第一年考的是北大。北大专业课自主命题&#xff0c;考试范围包括慕课上的四门课408四门内容&#xff0c; 我就去做了炮灰。 第二年因为疫情和一些别的事情&#xff0c; 9月份开始准备考…

用 Python 制作各种用途的二维码

当你提到二维码时&#xff0c;大多数人想到的是仓库管理或产品标签等 "工业 "应用&#xff0c;但这篇文章在很大程度上是关于二维码的个人和社会用途。 有趣的事实 二维&#xff08;QR&#xff09;码是在1994年发明的&#xff0c;最近几年由于新冠肺炎的出现&#…

一道非常棘手的 Java 面试题:i++ 是线程安全的吗?

i 是线程安全的吗&#xff1f; 相信很多中高级的 Java 面试者都遇到过这个问题&#xff0c;很多对这个不是很清楚的肯定是一脸蒙逼。内心肯定还在质疑&#xff0c;i 居然还有线程安全问题&#xff1f;只能说自己了解得不够多&#xff0c;自己的水平有限。 先来看下面的示例来…

cache 缓存

缓存原理 测试样例 验证码 获取验证码 验证 验证码是否正确 idea 启动缓存 手机验证码 idea 手机 获得验证码 ehchace 数据淘汰策略 使用redis 然后启动 redis 服务器 redis-server.exe redis.windows.conf 启动redis 客户端redis-cli.exe time-to-live 最大活动时间 缓…