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

mysql操作命令梳理(2)-alter(update、insert)

下面就针对alter修改命令的使用做一梳理: 在mysql运维操作中会经常使用到alter这个修改的命令,alter tables允许修改一个现有的结构,比如增加或删除列、创造或消去索引、改变现有列的类型...如:len(字段)>1), --主外关系 constraint FK_主表_从 foreign(字段) references 主表(主表主键字段) -----------------------...values(所有字段的插入值),(所有字段的插入值),(所有字段的插入值);                //批量插入 mysql> select * from huanqiu.haha; +--...即使在你将整个的所有数据delete清空后,之前的自增序列最大值还是会被重用。...TABLE NAME_TBL; //显示NAME_TBL创建时的信息 mysql>SHOW VARIABLES LIKE 'AUTO_INC%'; //显示MySQL的AUTO_INC

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

MySQL的这个bug,坑了多少人?

1、问题描述 近期,线上有个重要Mysql客户的在从5.6升级5.7后,master上插入过程中出现"Duplicate key"的错误,而且是在主备及RO实例上都出现。...换出时将autoincrement保存在全局的的映射表,然后淘汰内存的dict_table_t。换入时通过查找全局映射表恢复dict_table_t结构体。...抓取用户的sql语句,果然,前两种用的都是replace into操作,最后一种用的是update操作。 难道是replace into语句导致的问题?搜索官方bug, 又发现了一个疑似bug。...基于ROW格式复制slave后,slave机上按照update操作回放,只更新行自增的值,不会更新autoincrement。...5 心得 (1) autoincrement的autoinc_lock_mode及auto_increment_increment这两个参数变化容易导致出现重复的key,使用过程要尽量避免动态的去修改

52120

好险!一入职,就遇到MySQL这么大Bug!差点背锅走人~

问题描述 线上有个重要Mysql客户的在从5.6升级5.7后,master上插入过程中出现"Duplicate key"的错误,而且是在主备及RO实例上都出现。...换出时将autoincrement保存在全局的的映射表,然后淘汰内存的dict_table_t。换入时通过查找全局映射表恢复dict_table_t结构体。...抓取用户的sql语句,果然,前两种用的都是replace into操作,最后一种用的是update操作。难道是replace into语句导致的问题?搜索官方bug, 又发现了一个疑似bug。...基于ROW格式复制slave后,slave机上按照update操作回放,只更新行自增的值,不会更新autoincrement。...心得 (1) autoincrement的autoinc_lock_mode及auto_increment_increment这两个参数变化容易导致出现重复的key,使用过程要尽量避免动态的去修改。

64420

深度解析auto-increment自增列"Duliplicate key"问题

提示:公众号展示代码会自动折行,建议横屏阅读 问题描述 近期,线上有个重要Mysql客户的在从5.6升级5.7后master上插入过程中出现"Duplicate key"的错误,而且是在主备及RO实例上都出现...换出时将autoincrement保存在全局的的映射表,然后淘汰内存的dict_table_t。换入时通过查找全局映射表恢复dict_table_t结构体。...抓取用户的sql语句,果然,前两种用的都是replace into操作,最后一种用的是update操作。难道是replace into语句导致的问题? 搜索官方bug, 又发现了一个疑似bug。...基于ROW格式复制slave后,slave机上按照update操作回放,只更新行自增的值,不会更新autoincrement。...心得 (1) autoincrement的autoinc_lock_mode及auto_increment_increment这两个参数变化容易导致出现重复的key,使用过程要尽量避免动态的去修改。

2.2K40

MySQL学习笔记

database 数据库名; ps:MySQL的数据类型可查看官方文档或菜鸟教程 自增: 如果为某列设置自增属性列,无需插入数据,每当的数据行有插入时,会自动增值:(自增列必须是可索引的主键) create... fruit 引用了,将color_id列的索引指向了 color的nid列 索引的格式: constraint [键名称] foreign key (引入的列名) references...名 modify 列名 int,drop primary key; 添加:alter table 从1 add constraint 键名 foreign key...从字段) references 主表(主键字段) 删除外:alter table 名 drop foreign key 键名 修改默认值:alter table 名 alter 列名 set...(显示)的列 *号表示所有列 from 名,名 where .列 = .列(对应的关系) 39 40 无对应关系则不显示 41 select A.num, A.name

76540

深度解析auto-increment自增列Duliplicate key问题

提示:公众号展示代码会自动折行,建议横屏阅读 问题描述 近期,线上有个重要Mysql客户的在从5.6升级5.7后master上插入过程中出现"Duplicate key"的错误,而且是在主备及RO实例上都出现...换出时将autoincrement保存在全局的的映射表,然后淘汰内存的dict_table_t。换入时通过查找全局映射表恢复dict_table_t结构体。...抓取用户的sql语句,果然,前两种用的都是replace into操作,最后一种用的是update操作。难道是replace into语句导致的问题? 搜索官方bug, 又发现了一个疑似bug。...基于ROW格式复制slave后,slave机上按照update操作回放,只更新行自增的值,不会更新autoincrement。...心得 (1) autoincrement的autoinc_lock_mode及auto_increment_increment这两个参数变化容易导致出现重复的key,使用过程要尽量避免动态的去修改。

98120

MySQL的死锁系列- 锁的类型以及加锁原理

在 MySQL 的常用引擎 InnoDB 支持行锁,而 MyISAM 则只能使用 MySQL Server 提供的锁。...当插入中有自增列时,数据库需要自动生成自增值,它会先为该AUTO_INC 锁,阻塞其他事务的插入操作,这样保证生成的自增值肯定是唯一的。...显然,AUTO_INC 锁会导致并发插入的效率降低,为了提高插入的并发性,MySQL 从 5.1.22 版本开始,引入了一种可选的轻量级锁(mutex)机制来代替 AUTO_INC 锁,可以通过参数...当 SQL 语句无法使用索引时,会进行全扫描,这个时候 MySQL 会给整张的所有数据行加记录锁,再由 MySQL Server 层进行过滤。...譬如在上面的例子,id = 30 和 id = 49 之间如果有两个事务要同时分别插入 id = 32 和 id = 33 是没问题的,虽然两个事务都会在 id = 30 和 id = 50 之间加上插入意向锁

1.1K00

一、Mysql(1)

2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?  答:他们均是一个软件,都有两个主要的功能: a. 将数据保存到文件或内存 b....E-R模型 当前物理的数据库都是按照E-R模型进行设计的 E表示entry,实体 R表示relationship,关系 一个实体转换为数据库的一个 关系描述两个实体之间的对应规则,包括 一对一 一对多...名 drop primary key; alter table 名 modify 列名 int, drop primary key; 添加:alter table 从...add constraint 键名称(形如:FK_从_主表) foreign key 从(字段) references 主表(主键字段); 删除外:alter table 名 drop...非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作使用

95290

——完整约束性规则(

key (FK) 标识该字段为该 not null 标识该字段不能为空 unique key (UK) 标识该字段的值是唯一的 auto_increment 标识该字段的值自动增长...是否是key 主键 primary key foreign key 索引 (index,unique...)...并定义多个列的 FOREIGN KEY 约束,请使用下面的 SQL 语法: MySQL / SQL Server / Oracle / MS Access: ALTER TABLE Orders ADD...插入记录 insert into department values (1,'欧德博爱技术有限事业部'), (2,'艾利克斯人力资源部'), (3,'销售部'); #再往子表employee插入记录...新_字段名2) references 1(字段名) on delete cascade on update cascade; 对应的字段数据类型必须一致,两张的存储引擎必须一致,否则会出错

2.3K70

数据库锁的12连问,抗住!

所以,如果一个事务内,一个SQL正在更新某条记录,我们肯定不想它被别的事务影响嘛?因此,数据库设计大叔,给该行数据加上锁(行锁)。...innodb_autoinc_lock_mode还可以设置为0或者2, 0:表示传统锁模式,使用AUTO_INC锁。...自增值生成阶段使用轻量级互斥锁来生成所有的值,而不是一直加锁直到插入完成。对于bulk inserts类语句使用AUTO_INC级锁直到语句完成。...加锁规则一共包括:两个原则、两个优化和一个bug。 原则1:加锁的基本单位都是next-key lock。next-key lock(临锁)是前开后闭区间。...同时,当两条不同行的记录使用了相同的索引时,也是会发生锁冲突的。

67231

数据库锁 12 连问,抗住!

所以,如果一个事务内,一个 SQL 正在更新某条记录,我们肯定不想它被别的事务影响嘛?因此,数据库设计大叔,给该行数据加上锁(行锁)。...innodb_autoinc_lock_mode还可以设置为0或者2, 0:表示传统锁模式,使用AUTO_INC锁。...自增值生成阶段使用轻量级互斥锁来生成所有的值,而不是一直加锁直到插入完成。对于bulk inserts类语句使用AUTO_INC级锁直到语句完成。...加锁规则一共包括:两个原则、两个优化和一个bug。 原则1:加锁的基本单位都是next-key lock。next-key lock(临锁)是前开后闭区间。...同时,当两条不同行的记录使用了相同的索引时,也是会发生锁冲突的。

60720

MySQL基础SQL编程学习2

(或两个列多个列的结合)有唯一标识主键(、值)且主键列不能包含 NULL 值,有助于更容易更快速地找到的一个特定的记录。...一个的 FOREIGN KEY 指向另一个的 UNIQUE KEY(唯一约束的),FOREIGN KEY 约束用于预防破坏之间连接的行为,也能防止非法数据插入列因为它必须是它指向的那个的值之一...(即约束主键) SET NULL:则当在主键删除对应记录时,首先检查该记录是否有对应,如果有则设置子表键值为null(一样是约束主键,不过这就要求该允许取null) 5...补充说明: 1.创建约束的方式也可以使用工具plsql来新增约束; -- 在创建的时候指定约束 CREATE TABLE 名 ( column1 datatype null/not...在添加FOREIGN KEY的时候必须先创建约束所依赖的,并且该列为该的主键(对方关联字段必须是主键); Oracle数据库,对指定进行增删改的情况,子表:谁创建谁就是子表,父

7.2K30

浅谈MySQL自增锁

点击上方“Java后端技术栈“关注 持续推送技术干货 最近在工作遇到很多使用MySQL自带的autoincrement函数作为发号器,在实际使用当并发比较小的时候还没有问题,一旦并发增加就会出现很多问题...可以自动生成数字: insert into test_inc values(); 当增加3行后数据如下: ?...insert会获得批量的锁,保证连续插入) 2:interleaved (不会锁,来一个处理一个,并发最高) ps:这个参数值控制InnoDB引擎的设置,所有Myisam均为traditonal,...六、自增的过程 第一种,插入空值的时候 当innodb_autoinc_lock_mode=0时 1、申请AUTO_INC锁 2、得到当前的AUTO_INCREMENT值n,并加1 3、执行插入操作...第二种,插入已经有值的自增 1、插入第一条数据 2、如果失败流程结束 3、如果成功,申请AUTO_INC锁 4、调用set_max函数,修改AUTO_INCREMENT 5、语句结束,释放AUTO_INC

5K30

MYSQL回顾(完整性约束相关)

(unique 或 primary key) 需要将dep的id设置为唯一 比如 unique 或 primary key,否则会报错 2.插入数据 插入数据的时候先向被关联插入记录 再向关联插入记录...如果直接向关联插入记录,如果在被关联不存在会导致插入失败 3.删除数据 先删除关联的记录 delete from emp where dep_id=1; 再删除被关联的记录 delete...image.png 增加了删除同步和更新同步,建方面:建时还是需要先建立被关联再建关联插入记录方面:还是要先向被关联插入记录,再向关联插入记录。...,会同步更新或删除员工的记录 尽量不要使用foreign key 建议:尽量不要使用foreign key,foreign key会限制表之间的关系,之间的关联关系尽量在程序层面去维护,使用代码去维护之间的这种关联关系...(更新同步、删除同步) 设置时可以通过constraint给起一个名字(可选) ?

5.8K20
领券