SqLite数据库的外键问题
2016-12-16 21:02
295 查看
问题一、外键的开启和关闭
老版本的SqLite数据库不支持外键,现在的SqLite3数据库支持。SqLite3数据库的外键默认是关闭的,所以需要手动打开:
PRAGMA foreign_keys; //结果为 0 <=>关闭; 1 <=> 打开 PRAGMA foreign_keys = ON; //打开外键 PRAGMA foreign_keys = OFF; //关闭外键
问题二、外键设置需要注意的地方
在一个表中,一个列既可以是主键,也可以是外键。如果,A表中的列1是外键,参照的是B表的列1’,那么列1’必须是B的主键(列1’具有unique约束)。但是不能有在B表中 primary key(1’,2’,…) 这种有和列1’共同形成的联合主键出现,否则操作表时将会出现错误。
问题三、查询语句问题
两个表的列名一样时,做select column_name时,一定要标明哪个表的列名。在做删除操作时,
DELETE FROM code WHERE course_id = (SELECT course_id FROMR course WHERE teacher_id = ?)
一个teacher_id对应的course_id可能是多条,那么这条语句只能删除code表中一种course_id的记录。此时要设置一个while循环删除干净。
相关文章推荐
- Mysql数据库表内外键关联的问题
- 这是一个多表连接以及如何在ASPNET中回存空值到外键字段的问题。
- 关于mysql里 主键,外键,默认 联级删除的问题
- sql server 外键问题
- truncate table 遇到的外键被使用问题解决方案。
- PowerDesigner中的CDM设计的外键作主键的问题
- hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题
- 12.24(mysql修改Engine,外键问题,java.sql.timestamp,netbeans语言)
- LINQ to SQL 外键约束的插入及获取主表标识列等问题
- mysql中建立外键注意的问题
- oracle8中外键导致锁的问题
- 主外键约束问题,此列列表的唯一关键字或主键不匹配
- sqlite数据库支持中文路径问题
- 数据库设计的外键约束问题
- 今天用Visual C#为客户做一个数据下载分析系统,碰到一个问题 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
- SQL Server 2005 在两个表之间创建多重外键, 会有一点点小问题.
- mysql innoDB 使用外键的问题
- 外键关系问题
- 转载--Delphi 2010下使用sqlitesimpledelphi连接SQLite数据库及中文乱码问题的解决
- 在Sql Server2000的建表过程中碰到的外键、触发器方面的问题