MySQL中添加、删除约束
MySQL中6种常见的约束:主键约束(primary key)、外键约束(foreign key)、非空约束(not null)、唯一性约束(unique)、默认值约束(defualt)、自增约束(aoto_increment),下面是添加、删除这几种约束的一些方法。
--我已经建了数据库; 1 -- 添加约束
-- 1、建表时添加约束:
CREATE TABLE goodstest (
GID INT(10) NOT NULL AUTO_INCREMENT,
GNAME VARCHAR(20) NOT NULL,
GPRICE FLOAT NOT NULL,
GNUM INT(10) NOT NULL,
PRIMARY KEY (GID),
UNIQUE KEY (GNAME),
FOREIGN KEY (col_name) REFERENCES tab_name(col_name)
); -- 2、通过ALTER语句添加约束
-- 主键约束
-- 语法:ALTER TABLE tab_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (key_part,...) [index_option]
ALTER TABLE goodstest ADD PRIMARY KEY(GID);
-- 语法:ALTER TABLE tab_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]/* 可以更改列定义但不能更改其名称,在不重命名列定义的情况下更改列定义比CHANGE更方便。*/
-- 通过修改列定义添加或者添加主键,修改约束一般是先删掉原有的后重新添加
ALTER TABLE goodstest MODIFY GID INT(10) PRIMARY KEY;
-- 语法:ALTER TABLE tab_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRET | AFTER col_name] /*原始定义中存在但未为新定义指定的属性不会继续使用。即以新定义为准*/
ALTER TABLE goodstest CHANGE GID GID INT(10) PRIMARY KEY;/* 当不需要重命名时两个相同的列名是必要的*/ -- 唯一性约束
-- 语法:ALTER TABLE tab_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (key_part,...) [index_option] ...
ALTER TABLE goodstest ADD CONSTRAINT GNAME_UNI UNIQUE KEY(GNAME);/*如果没有用CONSTRAINT设置约束名 系统会自动生成*/
-- 同理可用MODIFY COLUMN及CHANGE COLUMN方法添加 -- 外键约束
-- 语法:ALTER TABLE tab_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (col_name,...) reference_definition
ALTER TABLE gsales ADD FOREIGN KEY(GID) REFERENCES goods(GID); -- 默认约束
-- 语法:AlTER TABLE goodstest ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}/*删除以及设置*/ -- 非空约束以及自增约束:在定义时设置,或者通过MODIFY COLUMN 和 CHANGGE COLUMN设置及删除
-- 一张表只能有一个自增长列,并且该列必须定义了约束(可以是主键约束,也可以是唯一约束,也可以是外键约束,但是不可以是非空和检查约束) -- 删除约束 -- 语法:ALTER TABLE tab_name DROP PRIMARY KEY;/*主键是唯一的就这样就行了*/
-- 语法:ALTER TABLE tab_name DROP [INDEX | KEY] index_name /*删除唯一性约束*/
-- 语法:ALTER TABLE tab_name DROP FOREIGN KEY fk_name/*删除外键约束*/
参考:https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
参考:https://blog.csdn.net/a909301740/article/details/62887992
MySQL中添加、删除约束的更多相关文章
- mysql 在已存在的表中添加/删除字段约束AUTO_INCREMENT遇到的问题
1. 在已存在的表中添加字段约束AUTO_INCREMENT修饰符 mysql> alter table user modify uid int auto_increment primary k ...
- MySql中添加用户/删除用户
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- mysql中添加一个和root一样的用户用于远程连接
mysql中添加一个和root一样的用户用于远程连接: 大家在拿站时应该碰到过.root用户的mysql,只可以本地连,对外拒绝连接. 下面语句添加一个新用户administrtor: CREATE ...
- MYSQL中delete删除多表数据
MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...
- 向redis中添加删除list列表
转: 向redis中添加删除list列表 2018年04月18日 15:44:54 luo_yu_1106 阅读数:4082 一.添加 向redis中添加队列有两种方式 1.lpush l是lef ...
- mysql中删除binlog的方法?mysql中如何删除binlog?
需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控 ...
- mysql 中添加索引的三种方法
原文:http://www.andyqian.com/2016/04/06/database/mysqleindex/ 在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以 ...
- MySQL 中添加列、修改列以及删除列
ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:); 删除列:alte ...
- ORACLE中添加删除主键
本文转自:http://blog.chinaunix.net/uid-17079336-id-2832443.html 1.创建表的同时创建主键约束(1)无命名create table student ...
随机推荐
- web框架之socket
概述 套接字最初是为同一主机上的应用程序所创建,使得主机上运行的一个程序(又名一个进程)与另一个运行的程序进行通信.这就是所谓的进程间通信 ( Inter Process Communication, ...
- 关于java8中的String
String 对象的不可变性 java8中的String只有2个属性value和hash,相关代码如下: /** The value is used for character storage. */ ...
- App唤起微信小程序和回调
在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转. 可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的 ...
- Linux基础(特基本的那种)知识
(自己的随手笔记,记得有点乱请轻喷) which:查看某个命令的完整路径df -h:查看系统磁盘情况history:查看历史输入的命令 网卡配置路径:vim /etc/sysconfig/networ ...
- SSH连接时root用户无法验证通过
解决办法是: vi /etc/ssh/sshd_config 找到 # Authentication: PermitRootLogin without passwd 改成 # Authenticati ...
- 解决从github上下载代码仓库慢的问题
一,打开命令提示符,最好之前准备一个仓库地址,这样下载下来的文件方便查看,这里打开你想要的下载根目录,进行下载. github上下载代码仓库慢的问题"> 二:复制代码仓库的地址 三:右 ...
- 【转贴】内存重要参数详解 RAS CAS
内存重要参数详解 RAS CAS 分类: LINUX 2014-09-12 09:41:58 原文地址:内存重要参数详解 RAS CAS 作者:Reny http://blog.chinaunix.n ...
- es6学习笔记(一)环境搭建
1.安装node.js.这个自行百度安装就好了,没什么说的,安装完配置环境变量.因为后面安装第三方包是要用到npm命令,装完node就等于安装完了npm 2.项目目录创建 mkdir es6 cd e ...
- spring security中Authority、Role的区别
最近在研究spring security时,大概研究了一下Authority.Role之间到底有什么本质的区别. 如果你使用的是hasRole方法来判断你的登录用户是否有权限访问某个接口,那么你初始化 ...
- IDEA插件之JavaDoc
作用:用于在Java类元素(例如字段,方法等)上生成Java文档的插件. 1.安装JavaDoc插件 File -> Settings -> Plugins -> Marke ...