mysql 如何添加约束

问题描述

现在有一张表,有3个字段。当初设计的时候是把id作为主键的,但是在后来的程序代码发现。其实应该是把a_id和b_id作为联合主键的。就是说不允许插入a_id相同值并且b_id相同值的记录。但是现在有很多其它的表引用了这个表的主键id,也不可能改表主键。如果设为3个字段的联合主键。也就达不到我想要的效果。。请问mysql有这样单独添加类似联合主键这样的效果的约束吗?或者还有没有其它解决方案。我用的框架是mybatis。。。表结构:id (PK)a_id b_id

解决方案

alter table 表名 add unique index a_id_b_id(a_id, b_id)
解决方案二:
uijll
解决方案三:
楼上正解。

时间: 2024-09-20 05:34:07

mysql 如何添加约束的相关文章

iOS之UIScrollview添加约束图文详解

iOS之UIScrollview添加约束图文详解 原文链接 http://www.jianshu.com/p/e4a12061776d 前言 在iOS开发中,autolayout是一个很强大的东西,用好了,能让你事半功倍,用不好,各种蛋疼.不过autolayout是很容易学的,笔者当时仅仅看了一个多小时的资料就轻松上手,相信比笔者厉害的大有人在. 不过无论多简单的东西,用起来总有不如意的地方,笔者曾经在UIScrollView的约束上折腾了很久,各种报错,各种查资料,终于在笔者不断的尝试下,找到

ios快速添加约束(storyboard中)

这篇文章是告诉新手如何快速的在storyboard中添加约束: 我们在storyboard中有一些按钮,可以添加约束. 但是最直观.最方便.最快捷的添加约束的方法,在我看来就是使用ctl键: 选中控件,按下ctl,将其拖动到约束的另外一个对象-可能是自己,可能是父视图,可能是兄弟视图. .弹出的框里我们就可以选择我们需要添加的约束,1次添加1个,不多也不少. 快来试试吧,拥抱autolayout!

Navicatfor Mysql中添加外键方法

环境:NavicatforMysql 8.2 + MySQL Sever 5.1 问题:NavicatforMysql中添加外键 解 决: 方法一: 使用SQL语句创建外键: alter table 外键表 add constraint 约束 名 foreign key(栏位名) references 参照表(外键栏位名) on delete restrict/set null/cascade on update restrict/set null/ cascade; 不指定外键的名称,mysq

mysql外键约束使用详解

MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbol]] FOREIGN KEY     [index_name] (index_col_name, ...)     REFERENCES tbl_name (index_col_name,...)     [ON DELETE reference_option]     [ON UPDATE reference_opt

Mysql外键约束设置使用方法

两个表必须是InnoDB表,MyISAM表暂时不支持外键 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立: 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以: 创建外键语法:  代码如下 复制代码 [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...) REFERENCE

Mysql 之 添加innodb支持

在对mysql进行编译安装时,当安装完成后有时会发现不支持innodb存储引擎,这是因为编译安装时缺少支持innodb的参数: --with-plugins=PLUGIN[,PLUGIN..] Plugins to include in mysqld. (default is: none) Must be a configuration name or a comma separated list of plugins. Available configurations are: none ma

为MySQL数据库添加注释

今天写MySQL的function时,对内容添加注释,发现编译出错; 查找手册才发现,"--"注释有个小小的需要注意的地方:"--"与被注释内容之间要添加空格才行; 本以为是个小问题,谁知.... 还是在此记录一下,为了马虎先生和马虎小姐. MySQL注释分为两类:单行注释.多行注释. ->单行注释有两种,格式如下: 1.#... 以"#"号开头,直到该行行尾,全部都是注释内容; 2.--  以"-- "号开头,直到该行

MySQL数据库添加新用户

在VPS上安装完MySQL之后,缺省的用户只有root@localhost,新添加MySQL用户最简单的方法是: 在phpmyadmin里面执行如下语句(语句最后要加分;号): grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD' flush privileges 当然在SSH里面运行 mysql -uroot -p 之后也能够输入上面的sql语句,效果一样. 解释如下: 这将添加新用户,用

MYSQL外键约束的学习笔记

在项目中,很多时候我们建数据表单的时候,两个表示相关联的,并且一个表里面的数据是完全依赖另一张表的数据的, 外键约束语法 [CONSTRAINT [symbol]] FOREIGN KEY     [index_name] (index_col_name, ...)     REFERENCES tbl_name (index_col_name,...)     [ON DELETE reference_option]     [ON UPDATE reference_option] refer