MYSQL:基础—主键
MYSQL:基础—主键
1.什么是主键
表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键。
如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。
2.那些列可以作为主键:
任何列都可以作为主键,只要它满足以下条件:
• 任何两行都不具有相同的主键值。就是说这列的值都是互不相同的。
• 每个行都必须具有一个主键值。主键列不允许设置为NULL。
• 主键列的值不建议进行修改和更新。
3.声明主键的方法
在创建表的时候决定是否有主键:
1.最简单的:
CREATE TABLE t1(
id int not null,
name char(20)
);
2.带主键的:
CREATE TABLE t1(
id int not null primary key,
name char(20)
);
3.带复合主键的:
CREATE TABLE t1(
id int not null,
name char(20),
primary key (id,name)
);
4.主键自增的:
create table dd(
id int primary key not null auto_increment,
name varchar(20),
time timestamp default current_timestamp
);
5.创建完后再决定主键
create table t(
id int not null,
name varchar(200) not null,
time timestamp default, current_timestamp
);
alter table t add primary key (id);
MYSQL:基础—主键的更多相关文章
- mySQL 中主键值自动增加
转 http://stevenjohn.iteye.com/blog/976397 MySql 主键自动增长 博客分类: DataBase MySQLSQL 创建数据库,创建表. mysql> ...
- Mysql增加主键或者更改表的列为主键的sql语句
...
- 【数据库】Mysql中主键的几种表设计组合的实际应用效果
写在前面 前前后后忙忙碌碌,度过了新工作的三个月.博客许久未新,似乎对忙碌没有一点点防备.总结下来三个月不断的磨砺自己,努力从独乐乐转变到众乐乐,体会到不一样的是,连办公室的新玩意都能引起莫名的兴趣了 ...
- Mysql让主键归0
Mysql 相关技术 1.Mysql 让主键 归0: TRUNCATE TABLE * 2.只清空数据表,主键不归0: DELETE FROM 'TABLE' 3.重启数据库: /etc/init.d ...
- 图解|12张图告诉你MySQL的主键查询为什么这么快
这是图解MySQL的第3篇文章,这篇文章会让大家清楚地明白: 什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而 ...
- MySQL基础 - 外键和约束
在工作中经常会遇到不少不同的观点,比如对于数据库来说那就是是否要设置外键,设置外键的理由自然不必多说,而不设置外键的理由多半为设置外键影响性能,但就目前工作来讲,还没有涉及到因为外键而引发的数据库瓶颈 ...
- mysql iot 主键自增列问题
mysql 如何避免热点块? 主键按sn自增列 Oracle 可以通过翻转索引 比如 插入101 102 103 104 变成101 201 301 401 分散数据 反转索引坏处,无法index r ...
- mysql insert 主键 重复问题
转自:http://blog.163.com/liuweiyoung@126/blog/static/173131045201222122732435/ mysql中insert into和repla ...
- mysql把主键定义为自动增长标识符类型
分享下mysql中如何把主键定义为自动增长标识符类型. 1.把主键定义为自动增长标识符类型在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: )); ...
随机推荐
- linux. -bash: fork: retry: Resource temporarily unavailable错误
切换用户或登陆服务器后执行ls命令报错: -bash: fork: retry: Resource temporarily unavailable 上面这段错误提示的本质是Linux操作系统无法创建更 ...
- ajax请求后台返回map类型并如何展示
前台jsp或者ftl文件接收返回结果: <input type="hidden" name="selectedModelListStr" id=" ...
- 如何解决局域网中Windows防火墙不能访问Oracle问题!
在防火墙例外中,添加端口1521端口就样局域网内的其他机器就可以访问你的ORACLE了. 在防火墙的入站规则中,新建端口规则.过程如下例图片所示:
- (转载)Javascript removeChild()不能删除全部子节点的解决办法
在Javascript中,只提供了一种删除节点的方法:removeChild().removeChild() 方法用来删除父节点的一个子节点. 语法: parent.removeChild(thisN ...
- Web Services 概要
WSDL WSDL 是基于 XML 的用来描述 Web services 以及如何访问它们的一种语言. WSDL 可描述 web service,连同用于 web service 的消息格式和协议的细 ...
- Hibernate通过one-to-one元素的一对一映射
正如我们在前面的例子中讨论过的,在hibernate中执行一对一映射有两种方法: 通过many-to-one元素 通过one-to-one元素 这里,我们将通过one-to-one元素进行一对一的映射 ...
- 洛谷1006==codevs1169
P1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法 ...
- 【BZOJ4245】[ONTAK2015]OR-XOR 贪心
[BZOJ4245][ONTAK2015]OR-XOR Description 给定一个长度为n的序列a[1],a[2],...,a[n],请将它划分为m段连续的区间,设第i段的费用c[i]为该段内所 ...
- .NET调用JAVA的WebService方法
调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,在网上也有相关资料, ...
- GridView中给DropDownList动态绑定数据,及选择列表值后自动更新数据库
protected void sgvFile1_RowDataBound(object sender, GridViewRowEventArgs e) { DropDownList ddlAM = ( ...