mysql怎么设置非主键 mysql非主键索引原理

在MySQL中如何设置主键和外键1.外键的作用,主要有两个:
一个是让数据库自己通过外键来保证数据的完整性和一致性
一个就是能够增加ER图的可读性
2.外键的配置
1)先创建一个主表,代码如下:
#创建表student,并添加各种约束
create table student
(
id int primary key ,#主键约束
name varchar(20),#唯一约束
age int NOT NULL, #非空约束
sex varchar(2) ,
address varchar(20) default '重庆'#默认约束
) ;
再通过一个外键,创建一个分数表,这样的话,就可以方便查询 。代码如下:
#创建分数表
create table score
(
id int primary key ,
sid int ,
【mysql怎么设置非主键 mysql非主键索引原理】china int ,
history int,
english int,
constraint FK_sid foreign key(sid) references student(id)#通过外键创建链接
) ;
创建外键的方法有很多,其中最常见创建外键的格式是:constraint FK_*** foreign key(**) references 链接的外表
删除外键:
alter table drop foreign key '外键名'.
注意:
只有在定义外键时,用constraint 外键名 foreign key .... 方便进行外键的删除
主键是唯一标示这一行的,就好像你的身份证号一样,每个人只有一个,也是唯一能证明你是你的东西 。外键是别人执行你的东西 。也就是说如果一个人想和你有点关系怎么办,那就要关联起来 , 怎么关联起来,就通过外键啊
定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
一、主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄 。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键 。
外键用于与另一张表的关联 。是能确定另一张表记录的字段,用于保持数据的一致性 。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键 。
mysql数据库 不是主键自增长列在映射文件中怎么配置1、建表时设置主键
create table test(
id int primary key auto_increment,
name varchar(50)
)
2、手动设置主键
进入phpmyadmin页面,表结构选择列主键,操作项AUTO_INCREMENT输入自增起始值 。
问一个很简单的问题,mysql数据库怎么设置ID自动递增但不是主键?如果你要为score中,增加一个 唯一的 自增 id 。
那么恐怕你要修改表的主键了, 把 那个使用AUTO_INCREMENT的id设置为主键 。
因为 仅仅只定义 AUTO_INCREMENT 是无法处理的 。
mysql CREATE TABLE tab (
-idINT AUTO_INCREMENT,
-val VARCHAR(10)
- );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
看上上面的例子了么?
我仅仅定义了idINT AUTO_INCREMENT 。
没有定义为主键 。
结果错误提示信息为:
只能有一个自动递增的列,并且必须要定义为 key.
mysql数据库怎么让id自动增长,但ID不是主键 。难道只有ID为主键时,才可以自增的么?从零蛋娃娃的回复中得到启示 , 解决问题 。
重新表述需求: id自增长,同时需要一个键uniquekey是唯一键 。
解决方法就是:
把id在索引中设置索引类型为任意一个类型,比如normal,然后unique就可以设置为主键了 。
或者反过来,id自增长,同时作为主键 。uniquekey在索引中索引类型设置为unique即可 。
补充:考虑到主键能设置成外键 , 所以建议用以上第一种方式 。
mysql 主键自增 还能自己设置主键吗能,MySQL 每张表只能有1个自动增长字段 , 这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为其添加唯一索引,否则系统将会报错 。例如:
-- 将自动增长字段设置为主键
create table t1 (id int auto_increment Primary key,sid int);
-- 将自动增长字段设置为非主键,注意必须显式添加Unique键
create table t2 (sid int primary key,id int auto_increment Unique);
-- **将自动增长字段设置为非主键如果未添加唯一索引将会报错**,如下面语句
create table t3 (sid int primary key,id int auto_increment);
mysql中如何使一个不是主键的字段自增按如下方法:
1、创建表
create table t5
(id int auto_increment,
name varchar(20) primary key,
key(id));
其中name字段是主键,而id字段则是自增字段 。
2、试插入数据:
insert into t5 (name) values ('a');
执行结果:
可以看出第一次 , id字段为1 。
3、插入第二次数据:
insert into t5 (name) values ('b');
执行结果:
第二次插入的为2,这样就实现了自增 。
关于mysql怎么设置非主键和mysql非主键索引原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读