首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何处理 MySQL错误码 1215:无法添加约束

本文为作者翻译文章,原文链接:Dealing with MySQL Error Code 1215: “Cannot add foreign key constraint” 在给一个表创建时,MySQL...总是会出现提示: ERROR 1215 (HY000): Cannot add foreign key constraint 这信息基本是啥都没说,下面就来说说几种常见的导致1215错误的情况: 父表不存在...解决方法: 先创建父表,再创建子表; SET FOREIGN_KEY_CHECKS=0;后,创建子表,再创建父表;SET FOREIGN_KEY_CHECKS=1;(这备份常用方式) 标点符号使用不对 错误方式...parent(id); ALTER TABLE child ADD FOREIGN KEY (parent_id) REFERENCES parent(`id`); 父表或者父表中相关列的名字写错了错误...parent_virt INT(10) NOT NULL, FOREIGN KEY (parent_virt) REFERENCES parent(column_virt) ) ENGINE INNODB; 创建失败的更多提示信息

20.7K21
您找到你想要的搜索结果了吗?
是的
没有找到

使用iOS原生sqlite3框架对sqlite数据库进行操作

SQLITE_ERROR        1   /* SQL数据库错误或者丢失*/ #define SQLITE_INTERNAL     2   /* SQL内部逻辑错误 */ #define SQLITE_PERM.../* 数据库文件被锁定 */ #define SQLITE_LOCKED       6   /* 数据库中有表被锁定 */ #define SQLITE_NOMEM        7   /* 分配空间失败...      18   /* 字符或者二进制数据超出长度 */ #define SQLITE_CONSTRAINT  19   /* 违反协议终止 */ #define SQLITE_MISMATCH    ..._finalize(statement);     statement=nil;     return array; } 5.错误信息类可以将数据库操作中的异常抛出提示开发者 YHBaseSQLError.h.../**  *异常的提示信息  */ __PROPERTY_NO_STRONG__(NSString *, errorInfo); /**  *异常的对应code码  */ __PROPERTY_NO_ASSIGN

2.1K10

SQLite 基础

Core Data SQLite 什么是SQLite SQLite是一款轻型的嵌入式数据库 它占用资源非常的低,在嵌入式设备中,可能只需要 几百K的内存就够了 它的处理速度比Mysql...autoincrement create table t_student (id integer primary key autoincrement, name text, age integer) ; 二十一、约束...利用约束可以用来建立表与表之间的联系 的一般情况是:一张表的某个字段,引用着另一张表的主键字段 新建一个 create table t_student (id integer primary...foreign key (class_id) references t_class (id)); t_student 表中有一个叫做fk_t_student_class_id_t_class_id 的...这个的作用是用 t_student 表中的 class_id 字段引用 t_class 表的 id 字段 二十二、表连接查询 什么是表连接查询 需要联合多张表才能查到想要的数据 表连接的类型

2.1K40

关于女神SQLite的疑惑(1)

如果要创建一个表全生命周期唯一的键值,就要在声明中再加上这个约束关键字: AUTOINCREMENT。...另外,如果最大的键值已经被使用过了无法在递增,那么此时的 INSERT 操作将会失败,并且返回错误SQLITE_FULL 。 2. 问:SQLite究竟支持什么数据类型? 2....在你使用命令 CREATE TABLE 来创建表时对域的类型的定义,并不成为日后插入数据的约束条件。所有的域都可以储存任意长度的文本字符串。...关于这个话题,早已有无数的 Windows 砖家们给出过警告,任何想用锁机制来锁住网络文件的人都必定会被无数的莫名其妙的错误、崩溃、异常折磨成精神病,陷入噩梦般的抑郁之中。...当 SQLite 试图对一个已经被其他任务加了锁的数据库访问时,将会得到一个 SQLITE_BUSY 的错误,你可以使用以下两个函数来控制此时你的程序的下一步行为。

94910

SQL反模式学习笔记5 约束【不用钥匙的入口】

目标:简化数据库架构 一些开发人员不推荐使用引用完整性约束,可能不使用的原因有一下几点: 1、数据更新有可能和约束冲突; 2、当前的数据库设计如此灵活,以至于不支持引用完整性约束...比如MySQL的MyISAM存储引擎,或者比SQLite3.6.19早的版本; 5、定义的语法并不简单,还需要查阅。...反模式:无视约束,即不使用约束 省略约束能使得数据库设计更加简单、灵活,或者执行更加高效,但是你不得不在其他方面付出相应的代价, 必须增加额外的代码来手动维护引用完整性...1、假设无暇代码:要避免在没有约束的情况下产生引用的不完整状态,需要再任何改变生效前执行额外的Select查询, 以此来确保这些改变不会导致引用错误。...合理使用反模式: 如果数据库产品不支持约束功能,则不得不使用别的方法来保持引用完整性,比如使用监控脚本。 同样也存在一些极度灵活的数据库设计,无法用来表示其对应的关系。

80530

GORM V2 自动迁移和迁移接口的方法

AutoMigrate 会创建表,缺少的约束,列和索引,并且会更改现有列的类型(如果其大小、精度、是否为空可更改)。但不会删除未使用的列,以保护您的数据。...// 创建表时添加后缀 db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{}) AutoMigrate 会自动创建数据库约束...db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ DisableForeignKeyConstraintWhenMigrating...= nil { fmt.Printf("创建数据库表失败错误:%s\n", err) return } fmt.Println("创建数据库表成功") 默认情况下,GORM 会约定使用 ID...= nil { fmt.Printf("修改索引名称失败,err:%s\n", err) return } 方式 1,错误信息: 修改索引名称失败,err:Error 1176: Key 'Name

3.9K30

七天.NET 8操作SQLite入门到实战 - SQLite 简介

什么是SQLiteSQLite是一个轻量级的嵌入式关系型数据库,它以一个小型的C语言库的形式存在。...SQLite有哪些优点? SQLite是一种嵌入式SQL数据库引擎,它是一个自包含、无需服务器、零配置的数据库引擎。与传统的数据库系统不同,SQLite直接读写普通磁盘文件,不需要单独的数据库服务器。...SQLite具有以下特点: 嵌入式:SQLite的库可以轻松地嵌入到应用程序中,不需要独立的数据库服务器进程。...公共领域代码:SQLite的源代码是公共领域的,可以免费用于商业或私人用途。 SQLite有哪些不足?...完整性约束支持有限:相对于其他数据库系统,SQLite对完整性约束的支持相对有限,例如约束的支持较弱。 SQLite适用于哪些应用场景?

20250

SQLite3详细介绍

相当于mysql的show tables命令 sqlite> .tables 退出SQLite 退出SQLite命令为.quit或.exit sqlite> .quit sqlite> .exit 备份与恢复...SQLite中所有的命令 sqlite> .help 图形化操作 这里选择使用idea自带的数据库管理器为例 连接SQLite数据库 点击idea最右侧的数据库图标,点击+号,选择数据源,选择SQLite...简单翻译一下,SQLite可以直接删除列,但有以下八种情况会导致删除列失败 该列是 PRIMARY KEY 或其中的一部分。 该列具有 UNIQUE 约束。 该列已编入索引。...该列在与要删除的列无关的表或列 CHECK 约束中命名。 该列用于约束。 该列用于生成列的表达式。 该列出现在触发器或视图中。...在之前的版本中SQLite中只有内连接和左连接 SELECT * FROM student JOIN sc s on student.sno = s.sno; SELECT * FROM student

2.1K70
领券