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
您可能感兴趣
- mysql8.0详解(MySQL 8.0 的 5 个新特性,太实用了!)
- mysql5.7详细安装教程(MySQL5.7.33安装过程图文详解)
- mysql函数编写(MySQL中sum函数使用的实例教程)
- pythonmysql使用教程(Python异步操作MySQL示例使用aiomysql)
- django mysql设置(Django框架使用mysql视图操作示例)
- mysql分区怎么实现(MySql分表、分库、分片和分区知识深入详解)
- mysql权限管理详解(Mysql 用户权限管理实现)
- mysql是否支持透明数据加密(MySQL的加密解密的几种方式小结)
- mysql一主两从架构(MySQL主从搭建多主一从的实现思路与步骤)
- mysql和mycat半主从复制项目(Linux如何使用 MyCat 实现 MySQL 主从读写分离)
- mysql数据库如何删除重复记录(mysql数据库删除重复数据只保留一条方法实例)
- mysql在centos7中如何安装(阿里云centos7安装mysql8.0.22的详细教程)
- mysql自增主键创建过程(深入谈谈MySQL中的自增主键)
- mysql权限设置
- mysql查询逗号分割字符串(MySQL 字符串拆分实例无分隔符的字符串截取)
- mysql报错103(解决Mysql报Invalid default value for“operate_time”错误的问题)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9