通过启用pragma foreignkeys ON,我以编程方式在ios中创建了一个.sqlite文件

NSFileManager *theFileManager = [NSFileManager defaultManager];

if ([theFileManager fileExistsAtPath:[self getDatabasePath]] == NO)

{

char *theError;

const char *databasePath = [[self getDatabasePath] UTF8String];

const char *enableForienKey = [@"PRAGMA foreign_keys = ON;" UTF8String];

if (sqlite3_open(databasePath, &mDatabase) == SQLITE_OK)

{

if (sqlite3_exec(mDatabase, enableForienKey, NULL, NULL, &theError)!=SQLITE_OK)

{

DEBUGLOG(kCreateTableError,sqlite3_errmsg(mDatabase));

}

sqlite3_close(mDatabase);

}

else {

DEBUGLOG(KFailedToCreateDBFile);

}

}

Pragma外键正在启用但是,我创建了两个表,如下所示,创建查询包括ON DELETE CASCADE //第一个表创建查询

@"CREATE TABLE IF NOT EXISTS Session (sessionAppID INTEGER PRIMARY KEY NOT NULL , sessionID VARCHAR(255) NOT NULL, userAppID INTEGER, deviceAppID INTEGER NOT NULL, sessionStartTime VARCHAR(255) NOT NULL, sessionEndTime VARCHAR(255), sessionCreatedDateTime VARCHAR(200) NOT NULL,sessionUpdatedDateTime VARCHAR(200) NOT NULL, sessionFailureCount INTEGER NOT NULL,sessionStatus INTEGER NOT NULL, FOREIGN KEY(userAppID) REFERENCES User(userAppID), FOREIGN KEY(deviceAppID) REFERENCES Device(deviceAppID))"

//第一个表查询的子表的第二个表

@"CREATE TABLE IF NOT EXISTS EventLog (eventLogAppID INTEGER PRIMARY KEY NOT NULL , eventGUID VARCHAR(255) NOT NULL, sessionAppID INTEGER NOT NULL , eventName VARCHAR(255) NOT NULL, eventGroupGUID VARCHAR(255), eventParentGUID VARCHAR(255), eventCategory INTEGER NOT NULL,eventStartTime VARCHAR(255) NOT NULL, eventEndTime VARCHAR(255) ,eventDuration VARCHAR(255),eventType INTEGER NOT NULL,eventCreatedDateTime VARCHAR(200) NOT NULL,eventUpdatedDateTime VARCHAR(200) NOT NULL,eventFailureCount INTEGER NOT NULL,eventStatus INTEGER NOT NULL, FOREIGN KEY(sessionAppID) REFERENCES Session(sessionAppID)ON DELETE CASCADE)"

在删除会话记录时,只有会话记录正在删除eventLog记录没有删除,可以请任何人帮忙,这将是什么问题.通过我使用sqlite3版本3.7.1的方式

cascade sqlite 数据库_ON DELETE CASCADE无法正常工作在ios中的sqlite3中相关推荐

  1. MySQL外键约束_ON DELETE CASCADE/ON UPDATE CASCADE

    MySQL通过外键约束实现数据库的参照完整性,外键约束条件可在创建外键时指定,table的存储引擎只能是InnoDB,因为只有这种存储模式才支持外键. 外键约束条件有以下4种: (1)restrict ...

  2. mysql on cascade_MySQL外键约束_ON DELETE CASCADE/ON UPDATE CASCADE

    MySQL通过外键约束实现数据库的参照完整性,外键约束条件可在创建外键时指定,table的存储引擎只能是InnoDB,因为只有这种存储模式才支持外键. 外键约束条件有以下4种: (1)restrict ...

  3. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  4. Android SQLite数据库的详细使用

    SQLite 简介 SQLite 是一款内置到移动设备上的轻量型的数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式系统中 SQLite 数据库是无类型的,可 ...

  5. 嵌入式SQLite数据库架构和设计

    SQLite是一个开源的.内嵌式的关系型数据库.SQLite和Oracle和Access一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引.触发器等等,但是它 ...

  6. python SQLite数据库基本操作

    python SQLite数据库基本操作 1. 创建数据库 导入sqlite模块 import sqlite3 创建数据库连接:connect("数据库名称") 如果connect ...

  7. 基于python的SQLite数据库增删改查

    与其他数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是一种嵌入式数据库,他的数据库就是一个文件.SQLite将整个数据库,包括定义.表.索引以及数据本身,作为一个单独的.可 ...

  8. PHP-CRUD-API:将 REST API 添加到 MySQL/MariaDB、PostgreSQL、SQL Server 或 SQLite 数据库的单个文件 PHP 脚本

    https://github.com/mevdschee/php-crud-api 将 REST API 添加到 MySQL/MariaDB.PostgreSQL.SQL Server 或 SQLit ...

  9. PC软件开发技术之三:C#操作SQLite数据库

    我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...

最新文章

  1. FTP Active Passive
  2. centos 7安装_VMware Workstation安装centos
  3. Python基础知识-优雅的with as语句
  4. VTK:图像转结构化点用法实战
  5. 怎样安装两个tomcat,怎样配置
  6. 互联网控制协议ICMP
  7. 电脑中病毒了一直下载安装软件怎么办?
  8. 【Proteus仿真】单端稳压和双极性对称稳压电源电路(LM7812、LM7912)
  9. Linux 文件压缩和解压命令 (压缩、解压)
  10. paddlex,2.1.0识别预测代码(包含视频的)
  11. 百度网盘/U盘,上传文件时提示超过4G限制如何解决
  12. 阿里云ECS服务器实例是什么意思?关于实例的讲解
  13. win10 1050ti anaconda搭建tensorflow-gpu
  14. 从键盘输入一个三位整数n,分别求出n的个位数字、十位数字和百位数字
  15. CenterNet:Objects as Points代码解析(九):通过高斯函数画热点图
  16. 什么样的用户标签系统,可以深入业务构建用户价值体系?
  17. ArcBlock 创始人冒志鸿应邀在猎豹移动演讲
  18. 时间子系统10_hpet时钟初始化
  19. 服务器pg信号指的是什么信号,什么是PG信号?PG信号是怎么形成的?PG信号的作用?...
  20. ⾯板数据分析、空间计量、空间杜宾模型学习资料

热门文章

  1. 【渝粤教育】电大中专Office办公软件 (2)作业 题库
  2. 国家开放大学2021春1080工程数学(本)题目
  3. 远程抄表系统(AMR/AMI)中无线模块选型指南
  4. 蓝桥杯单片机基础学习00_1
  5. 服务器安装mysql要密码_在阿里云服务器上安装mysql及重置密码
  6. java架构师_成为一名Java高级架构师究竟要学哪些东西??
  7. typora导出word指定样式_(二)最简洁的Markdowd编辑器:Typora
  8. 【1】C++语法与数据结构之C语言学生管理系统转C++学生管理系统
  9. pptv手机端html,影视资源持续更新,PPTV手机化身看片神器
  10. python字符串startswith_Python 字符串 startswith() 使用方法及示例