mysql 为字段增加主键】的更多相关文章

alter table 表名 add primary key(`字段`)…
                                                                                                                      www.169it.com 添加表字段 alter table table1 add transactor varchar(10) not Null; alter table   table1 add id int unsigned not Null auto_i…
主键 表中每一行都应该有可以唯一标识自己的一列(或一组列). 一个顾客可以使用顾客编号列,而订单可以使用订单ID,雇员可以使用雇员ID 或 雇员社会保险号. 主键(primary key) 一列(或一组列),其值能够唯一区分表中的每个行.唯一标识表中每行的这个列(或这组列)称为主键.没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只设计相关的行. 虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表有一个主键,以便于以后数据操纵和管理 表中的任何列都可以作为主键,只…
http://stackoverflow.com/questions/24725261/how-to-use-a-custom-identity-column-in-sql-with-entity-framework 情景,在mysql的一张表里面的id字段是主键,但是这个主键的值,不是自增的,也不是用户传入的,而是当insert的时候,由触发器来生成的. 这是触发器代码 我们到edmx模型中看看 EF生成的 , 很诡异的是, 由于我们的 creationtime 的字段是 timestamp…
primary key字段的值不为空且唯一 约束:not null unique 存储引擎:innodb 对于innodb来说,一张表内必须有一个主键 单列做主键多列做主键(复合主键) 通常都是id字段 设置主键 单列主键 mysql)); Query OK, rows affected (0.01 sec) mysql> desc t17; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | K…
SQL Server数据库中,如果一个表没有主键,我们该如何查询呢?本文我们主要就介绍了如何查询数据库中没有主键的表名并为其增加主键的方法,希望能够对您有所帮助. 该功能的实现代码如下: declare @tablename sysname ) declare tableNameCursor cursor for select b.name from sysobjects b where xtype='U' and b.name not in (select object_name(a.pare…
MyBatis+MySQL 返回插入的主键ID 需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User&…
sql语句建表,并且自增加主键 use [test] CREATE TABLE [dbo].[Table_4] ( [userid] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Table_4] PRIMARY KEY CLUSTERED ( [userid] ASC ) ) ON [PRIMARY]…
mybatis+mysql返回插入的主键,参数只是提供部分参数 <insert id="insertByChannelIdOpenid" useGeneratedKeys="true" keyProperty="id" parameterType="com.model.StatisticSaler" > insert into statistic_saler(city_id,shop_id,saler_id,typ…
MySQL 自增长主键 (1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号.编号从1开始,并1为基数递增. (2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样.但不建议这样做,还是以插入NULL值为好. (3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值. (4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有…
Mysql命令添加外键 前提是有这么几个表  以mall_product 和 mall_category为例 ALTER TABLE mall_product ADD CONSTRAINT fore_pro_cate FOREIGN KEY ( pro_category_id ) REFERENCES mall_category ( category_id ); 外键记得用括号包起来 值得一提的是 constraint  fore_pro_cate  是可以省略的 有MySQL来给出外键约束名称…
Mysql数据库表的自增主键ID号经过一段时间的添加与删除之后乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段: ) NOT NULL FIRST; 3,设置新主键: ALTER TABLE `table_name` MODIFY COLUMN `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(…
MySQL 在建表的时候声明字段即可 id int auto_increment primary key not null Oracle 第一步:建立表 drop table t_role; create table t_role ( role_name varchar(255) NOT NULL, note varchar(255) NOT NULL, id number NOT NULL, PRIMARY KEY (id) ); 这里需要注意主键id得是number类型的,如果是int类型将…
MYSQL里用这两个字段,几乎都是必须的. 以前都是自动建立的,现在手把手建立的时候,就要找资料来搞定了. 参考URL: http://blog.csdn.net/Weicleer/article/details/47608289 http://www.cnblogs.com/lhj588/p/4245719.html ============================== 表建立好之后,如何插入值,也是一个问题. ============================== 当数据表中有…
mysql的引擎问题: 需要知道的三个引擎:InnoDB--是一个事务处理引擎,不支持全文检索,支持事务操作,即DML操作: Memory--是一个数据存储在内存,速度很快,功能上等同于MyIsam,适合于临时表: MyIsam--是一个性能极高的引擎,支持全文检索,但是不支持事务的处理,没有声明的时候大多数默认是这个引擎!一般在不支持事务处理的时候用这个是比较好的! 在创建表的时候,引擎这一块要值得注意一下,就是在做主键和外键表的时候一定要做到主键表的引擎和外键表的引擎一致的情况,都应该是in…
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into us…
id = models.IntegerField(primary_key = True) 附: null :缺省设置为false.通常不将其用于字符型字段上,比如CharField,TextField上.字符型字段如果没有值会返回空字符串. blank:该字段是否可以为空.如果为假,则必须有值 choices:一个用来选择值的2维元组.第一个值是实际存储的值,第二个用来方便进行选择.如SEX_CHOICES= ((‘F’,'Female’),(‘M’,'Male’),) core:db_colu…
用uuid生成20位的主键 SELECT LEFT(REPLACE(UUID(), '-', ''),20) FROM DUAL 另一种方法: 因为数据库中有字母 需要排序的时候去除字母,重新取最大值,然后加1算作新的主键 SELECT IFNULL(DEPT_ID,0)+1 FROM base_dept ORDER BY DEPT_ID+0 DESC LIMIT 0,1 或者 使用MySQL函数CAST/CONVERT: mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的…
1.获取表的基本字段属性 --获取SqlServer中表结构 SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('你的表名') 2.如果还想要获取字段的描述信息则 --获取SqlServ…
通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_INSERT_ID()函数 通过SQL @@IDENTITY 变量 1. 通过JDBC2.0提供的insertRow()方式 自jdbc2.0以来,可以通过下面的方式…
什么是数据表的复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成 比如 create table test (    name varchar(19),    id number,    value varchar(10),    primary key (name,id) ) 上面的name和id字段组合起来就是你test表的复合主键 它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 一般情况下,主键的字段长度和字段数目要越少越好 KE…
这是最近在实现perfect-ssm中的一个功能时碰到的一个小问题,觉得需要记录一下,向MySQL数据库中插入一条记录后,需要获取此条记录的id值,以生成对应的key值存入到redis中,id为自增int主键. 修改 原代码为: <insert id="insertArticle" parameterType="Article"> insert into ssm_article(article_title,article_create_date,arti…
1.自动编号(AUTO_INCREMENT),必须与主键组合使用 默认情况下,起始值为1,增量也为1. 2.主键(PRIMARY KEY) 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL 3.AUTO_INCREMENT必须与主键一起使用,主键不一定必须与AUTO_INCREMENT一起使用. mysql> CREATE TABLE tb3( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> use…
背景      有同学讨论到MySQL 5.5下给大表加主键时会锁住读的问题,怀疑与fast index creation有关,这里简单说明下. 对照现象          为了说明这个问题的原因,有兴趣的同学可以做对比实验. 1)  在给InnoDB表创建主键期间,会锁住该表上的读数据 2) 但是同样的表执行删除主键期间,不会锁住该表上的读操作 —-这说明与是否fast index creation无关,因为这两个操作在数据层面的行为应该是类似的,实际上,创建/删除主键都必须copy data…
1.查询数据表的属性(名称.说明.是否主键.数据类型.是否自增) SELECT t1.name columnName,case when t4.id is null then 'false' else 'true' end as pkColumn, case when COLUMNPROPERTY( t1.id,t1.name,'IsIdentity') = 1 then 'true' else 'false' end as autoAdd ,t5.name jdbcType ,cast(isn…
这里只写selectKey方法的 一,Oracle数据库中的写法 order="BEFORE"因为oracle中需要先从序列获取值,然后将值作为主键插入到数据库中 <selectKey keyColumn="id" resultType="long" keyProperty="id" order="BEFORE"> SELECT SEQ_ID.nextval from dual </sel…
Mysql中假如有 ID Int auto_increment, CID varchar(36). 通常情况下都是 ID设置为主键. 假如要设置CID为主键.自增列ID必需是唯一索引. create table Temp ( ID bigint not null auto_increment comment '编号', CID varchar(36) not null, CreateTime datetime not null default now() comment '创建时间', uniq…
转自:http://blog.csdn.net/ultrani/article/details/9351573 作者已经写的非常好了,我不废话了,直接转载收藏: 通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_IN…
查看表主键信息 ## 查看表主键信息 SELECT t.TABLE_NAME, t.CONSTRAINT_TYPE, c.COLUMN_NAME, c.ORDINAL_POSITION FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t, INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c WHERE t.TABLE_NAME = c.TABLE_NAME AND t.CONSTRAINT_TYPE = 'PRIMARY K…
网上教程: 先删除旧的主键 再新建主键 :数据量少时没问题,不会出现主键自增空缺间隔的情况(如:1,2,3,5):但是大数据量时会出现如上所述问题(可能是内部mysql多进程或多线程同时操作引起问题). 解决办法: 表结构如下: 执行mysql 脚本如下: # 创建表备份 create table user_account_copy like user_account; # 插入数据 INSERT INTO user_account_copy (mobile,passwd,role,create…