mysql中如何设置多个主键(Mysql 增加主键或者修改主键的sql语句操作)
类别:数据库 浏览量:939
时间:2021-11-03 15:17:58 mysql中如何设置多个主键
Mysql 增加主键或者修改主键的sql语句操作添加表字段
|
alter table table1 add transactor varchar (10) not Null ; alter table table1 add id int unsigned not Null auto_increment primary key |
修改某个表的字段类型及指定为空或非空
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
alter table 表名称 modify 字段名称 字段类型 [是否允许非空];
alter table 表名称 modify 字段名称 字段类型 [是否允许非空];
修改某个表的字段名称及指定为空或非空
alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空
删除某一字段
|
ALTER TABLE mytable DROP 字段 名; |
添加唯一键
|
ALTER TABLE `test2` ADD UNIQUE ( `userid`) |
修改主键
|
ALTER TABLE `test2` DROP PRIMARY KEY , ADD PRIMARY KEY ( `id` ) |
增加索引
|
ALTER TABLE `test2` ADD INDEX ( `id` ) ALTER TABLE `category ` MODIFY COLUMN `id` int (11) NOT NULL AUTO_INCREMENT FIRST , ADD PRIMARY KEY (`id`); |
修改主键的sql语句块如下
mailbox 表新增字段
|
DROP PROCEDURE IF EXISTS mailbox_column_update; CREATE PROCEDURE mailbox_column_update() BEGIN -- 新增删除标志列 IF NOT EXISTS( SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA= 'cbs' AND table_name= 'mailbox' AND COLUMN_NAME= 'delete_flag' ) THEN ALTER TABLE mailbox ADD delete_flag int DEFAULT 2 NOT NULL ; END IF; -- 新增删除日期列 IF NOT EXISTS( SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA= 'cbs' AND table_name= 'mailbox' AND COLUMN_NAME= 'delete_date' ) THEN ALTER TABLE mailbox ADD delete_date int DEFAULT 0 NOT NULL ; END IF; -- 如果存在字段account_mail,则修改字段长度 IF EXISTS( SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA= 'cbs' AND table_name= 'mailbox' AND COLUMN_NAME= 'email_account' ) THEN alter table mailbox modify column email_account varchar (320); END IF; -- 如果不存在主键列,则设置双主键 IF (( SELECT count (*) FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'cbs' AND table_name= 'mailbox' AND CONSTRAINT_NAME = 'PRIMARY' AND (COLUMN_NAME = 'email_account' OR COLUMN_NAME = 'company_id' ))=0) THEN ALTER TABLE mailbox ADD primary key (company_id,email_account); -- 如果只存在一个主键列 ELSEIF (( SELECT count (*) FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'cbs' AND table_name= 'mailbox' AND CONSTRAINT_NAME = 'PRIMARY' AND (COLUMN_NAME = 'email_account' OR COLUMN_NAME = 'company_id' ))<2) THEN ALTER TABLE mailbox DROP PRIMARY KEY , ADD primary key (company_id,email_account); END IF; END ; CALL mailbox_column_update(); DROP PROCEDURE IF EXISTS mailbox_column_update; |
补充:mysql 修改主键自增,新增联合主键
|
ALTER TABLE `onduty_history` MODIFY COLUMN `id` int (11) NOT NULL AUTO_INCREMENT FIRST , MODIFY COLUMN ` name ` varchar (50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `id`, MODIFY COLUMN `onduty_date` datetime NOT NULL AFTER ` name `, ADD UNIQUE KEY (`id`), ADD PRIMARY KEY (` name `, `onduty_date`); |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/qq_35211818/article/details/79709657
您可能感兴趣
- MySQL 使用事件(Events)完成计划任务(MySQL 使用事件Events完成计划任务)
- MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项
- mysqljoin语句用法(MySQL的join buffer原理)
- mysql分区表的优缺点(MySQL数据表分区策略及优缺点分析)
- mysql把重复数据删掉(mysql查找删除重复数据并只保留一条实例详解)
- mysql8.0配置优化参数(MySQL 8.0 新特性之检查约束的实现)
- mysql必知必会索引(MySQL索引知识的一些小妙招总结)
- mysql怎么使用null(MySQL null与not null和null与空值''''的区别详解)
- MySQL中interactive_timeout和wait_timeout
- python mysql配置(详解python校验SQL脚本命名规则)
- mysql中innodb的特性(Mysql InnoDB的锁定机制实例详解)
- mysql完整整理(Mysql隔离性之Read View的用法说明)
- mysql执行计划详细解读(详解MySQL的Seconds_Behind_Master)
- mysql查看慢查询(MySQL 慢查询日志深入理解)
- mysqljson字段查询(Mysql 查询JSON结果的相关函数汇总)
- mysql 查询json(MySQL处理JSON常见函数的使用)
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
- 天热没胃口 这道菜开胃又下饭,2个小技巧新手一学就会(这道菜开胃又下饭)
- 指天椒紫苏爆炒牛肉(指天椒紫苏爆炒牛肉)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
热门推荐
- python图像仿射变换(详解Python计算机视觉 图像扭曲仿射扭曲)
- nginx-rtmp-module 配置(Nginx搭建rtmp直播服务器实现代码)
- python3json序列化(Python3.5 Json与pickle实现数据序列化与反序列化操作示例)
- python弹跳小球(python实现弹跳小球)
- linq to sql 中Concat、Union、Intersect、Except
- base64图片在各种浏览器的兼容性处理(base64图片在各种浏览器的兼容性处理)
- pycharm 爬虫的数据存在哪了(利用PyCharm Profile分析异步爬虫效率详解)
- docker装redis(通过Docker部署Redis 6.x集群的方法)
- mysql并发查询优化(详解MySQL 联合查询优化机制)
- python的几种数据结构(python中的数据结构比较)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9