mysql中如何设置一个字段,表中每增加一个值,这个字段自动产生一个连续的序号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中如何设置一个字段,表中每增加一个值,这个字段自动产生一个连续的序号?相关的知识,希望对你有一定的参考价值。

mysql中如何设置一个字段,表中每增加一个值,这个字段自动产生一个连续的序号?

通过 AUTO_INCREMENT设置
SQL INSERT语句的时候,要避免 指定那个自增的字段.否则会发生主键的冲突。
通过 ALTER TABLE语句 可以修改 自增的数值, 但是只能增加,不能减少。
TRUNCATE TABLE 语句,会将自增ID重置为零。


mysql> CREATE TABLE test_create_tab2 (
    ->   id   INT  AUTO_INCREMENT,
    ->   val  VARCHAR(10),
    ->   PRIMARY KEY (id)
    -> );
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
|  2 |
+----+
1 row in set (0.00 sec)

mysql> select * from test_create_tab2;
+----+---------+
| id | val     |
+----+---------+
|  1 | NO id   |
|  2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)

参考技术A mysql auto auto_increment 参考技术B 使用数据库的自增长

mysql默认值问题(高分!!!)

我用这个语句
alter table 表名 modify 字段 类型 default 默认值;

修改一个表的默认值,但是表中已经存在的数据的这个字段也修改为了这个值了。
但我用Navicat,设计表里修改默认值,表中已存在的数值就不会表。
这个为什么啊??
我想用语句实现navicat的这个功能;怎么写啊。
是会修改啊。今天我又试下了,的却是会修改,我用的是Navicat!!!
为什么呀,我快疯掉了。是不是mysql的BUG啊。

默认的意思就是在对表中的设置了默认值的列不插入数据时显示的值,比如说表中两列id、name,name的默认是是张三,当你插入数据时比如这样:insert into table (id) values (1);并未对name赋值,那么表中的记录就是1,张三;
你只是修改该列的默认值,并不能修改已经存在的记录值的,若要修改需这样:
update 表名 set 字段='新值' where 字段='旧值'

我已经测试过alter table 表名 modify 字段 类型 default 默认值;
这样并不能修改已经保存在数据库中的原有记录

以上,希望对你有所帮助!
参考技术A 用什么工具阿,直接写语句,语句才是万能的

你自己写的语句就是正确的

alter table tablename modify colum char/varchar/int/ default '值' ;
参考技术B

我实验了下,用语句修改不会变的,不知道你的怎么会变

以上是关于mysql中如何设置一个字段,表中每增加一个值,这个字段自动产生一个连续的序号?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 中如何给已存在的表中字段增设置主键?

SQL server 2005如何设置一个或几个字段唯一约束?

mysql视图里面怎么新增一个全新字段,在原来表内没有这列

mysql修改表中某个字段的默认值

mysql默认值问题(高分!!!)

mysql的表中字段如何进行累加