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 个新特性,太实用了!)
- mysql并发查询优化(详解MySQL 联合查询优化机制)
- mysql实用教程(Mysql调优Explain工具详解及实战演练推荐)
- 阿里云的自带mysql怎么开启(阿里云云服务器mysql密码找回的方法)
- mysql主键自增策略(MySQL的主键命名策略相关)
- 织梦源码安装数据库怎么填(Mysql修改端口号 织梦DedeCMS设置教程)
- myeclipse连接mysql数据库的方法(教你用eclipse连接mysql数据库)
- mysqldump属于哪种备份(MySQLDump的备份小技巧)
- MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项
- phpmysql怎么搭建(PHP使用PDO、mysqli扩展实现与数据库交互操作详解)
- navicat15.0.28注册码(Navicat for MySQL 11注册码激活码汇总)
- mysql 高级查询语法(MySQL查询语句进阶知识集锦)
- 将mysql中的表导出来(MySQL之导出整个及单个表数据的操作)
- mysql主从配置教程(MySQL大库搭建主从的一种思路分享)
- 搭建php和mysql的运行环境(Windows环境开发PHP完整配置教程Apache+Mysql+PHP)
- 阿里云mysql配置升级注意事项(详解如何在阿里云上安装mysql)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
- 小米推出米兔儿童电话手表奥特曼版,799 元,支持微信 QQ(小米推出米兔儿童电话手表奥特曼版)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
- 朱鹤松被不断认可,凤凰传奇玲花喊话岳云鹏,索要老朱演出门票(朱鹤松被不断认可)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9