mysql——非主键自增

今天遇到一个问题:

要创建一张表,其中我想将ip和date这两列作为一个复合主键,可以通过如下语句修改表结构:

alter table tb_name add primary key (字段1,字段2,字段3);

但是这样做会报错,原因是我在最开始创建表的时候已经将id作为主键了,因此要先取消id的主键(取消之前要先将id的自增去掉,否则无法取消他的主键)。

此时这张表已经将ip和date设置为复合主键,但我仍然想将ip设为主键,此时就会报错:

emmm 大概意思就是只有key能设置自增,但是这个key并一定是主键,按照下面博客修改表结构

https://blog.csdn.net/likika2012/article/details/9951529

CREATE TABLE `single_qps_01` (
  `id` bigint(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(100) NOT NULL,
  `date` datetime NOT NULL,
  `createTime` datetime DEFAULT NULL,
  `updateTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`ip`,`date`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

成功啦~!

原文地址:https://www.cnblogs.com/gaoquanquan/p/10801794.html

时间: 2024-11-11 04:32:46

mysql——非主键自增的相关文章

mysql非主键自增长

mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长. 如下: 1 2 3 4 CREATE TABLE t1 (     id INT,     col1 INT auto_increment NOT NULL ); 结果如下: 如果把col1列设为键,就可以创建自增. 1 2 3 4 5 CREATE TABLE t1 (     id INT,     col1 INT auto_increment NOT NULL,     key(col1) ); 结果如下: 如果我们把i

mysql 用非主键where语句报错Error Code: 1175.You are using safe update mode and you tried …

1)这是因为MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令,执行命令SET SQL_SAFE_UPDATES = 0;修改数据库模式 执行完更新之后再将SET SQL_SAFE_UPDATES 恢复为 1; 2)或者还可以在条件后面加limit语句加以限制.

mysql数据库单表只有一个主键自增id字段,ibatis实现id自增

mysql数据库单表只有一个主键自增id字段,ibatis实现id自增 <insert id="autoid">        insert into user_id values(null)        <selectKey resultClass="int">SELECT @@IDENTITY As id</selectKey>    </insert>

【mybatis】mybatis中insert 主键自增和不自增的插入情况【mysql】

主键不自增:返回值是插入的条数 <insert id="add" parameterType="EStudent"> insert into TStudent(name, age) values(#{name}, #{age}) </insert 主键自增: <insert id="add" parameterType="EStudent" useGeneratedKeys="true&quo

hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947

映射配置文件  好947  <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->  <resultMap type="person" id="BaseResultMap">   <!-- column:库表的字段名 property:实体类里的属性名 -->   <id column="person_id" property="personId" /&g

mysql 重置主键

开发时总是要向数据库写入测试数据,删掉以后id(自增主键)依然还是在增长,这个问题我遇到好多次,也都没有在意. 最近这个习惯被朋友嫌弃 = =||| 就在网上搜索了下mysql重置主键的办法: ALTER TABLE table_name AUTO_INCREMENT= 1; 就是重置主键从1开始(也可以从100,1000看你喜欢) 另一个办法就是重新建一张表(应该每人这样干把..) 留下记录以便下次查看~

mySQL 中主键值自动增加

转  http://stevenjohn.iteye.com/blog/976397 MySql 主键自动增长 博客分类: DataBase MySQLSQL 创建数据库,创建表. Sql代码   mysql> create database ssh2; Query OK, 1 row affected (0.04 sec) mysql> use ssh2; Database changed mysql> create table user( -> id integer prima

oracle主键自增(1) 序列+触发器实现Oracle主键自增

序列+触发器实现Oracle主键自增 序列的语法格式为: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的. START WITH 定义Oracle序列的初始值(即产生的第一个值),

使用powerdesigner建模时设置主键自增的问题

研究了一下,其实只要双击表,选择columns,再双击在你所要设为自增型的键上(比如你的id)或者右键选择Properties,弹出一个ColumnProperties 对话框,我们看到有标识 identify,勾选即可. Columns 的UI上有一个漏斗型 的图标 Customize columns and filters 点击以后选择你要的列,里面有:default 和identity 选中后,以后表格能只需要打勾就行了. 在CDM中是不能设置主键自增属性的,只有在PDM中才能设置. 因为