mySQL中如何修改列为自动增长急!!!

mySQL中如何修改列为自动增长急!!!,第1张

alter table questionlib modify id int(11) auto_increment;

注意事项:

修改后从下一条记录开始自动增长。如果想让原来的自动增长就得复制现有表的结构(无id),添加id并加上AUTO_INCREMENT,然后通过循环,添加n条空记录,然后对应先前表的id,依次插入数据。

扩展资料:

mysql自动增长开始值设置总结

1、创建表,设置表主键id自动增长,默认自动增长的起始值为1开始。

2、当表数据不为空的时候,重新去修改自动增长id开始值,mysql会主动去核对你设置的起始值是否是当前数据库已有id的最大值+1; 若是则修改成功,若不是则修改不成功 (默认还是id最大值+1)

3、要设置自动增长为1开始,需要清空表数据才行。alter table table_name AUTO_INCREMENT=1

4、若每次直接在数据库里面插入数据,则会自动的去修改当前表的自动增长起始值(设置自动增长起始值为当前插入成功的数据的id)

成功的执行例子如下,仅供参考

mysql> CREATE TABLE test_create_tab2 (

-> id INT AUTO_INCREMENT,

-> val VARCHAR(10),

-> PRIMARY KEY (id)

-> );

Query OK, 0 rows affected (009 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');

Query OK, 1 row affected (003 sec)

mysql> select last_insert_id() as id;

+----+

| id |

+----+

| 1 |

+----+

1 row in set (000 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');

Query OK, 1 row affected (003 sec)

mysql> select last_insert_id() as id;

+----+

| id |

+----+

| 2 |

+----+

1 row in set (000 sec)

mysql> select from test_create_tab2;

+----+---------+

| id | val |

+----+---------+

| 1 | NO id |

| 2 | NO id 2 |

+----+---------+

2 rows in set (000 sec)

像SQLserver这像的数据库是有自增字段的,实现原理SQLserver并没有公布的,但也比较容易猜到实现方式:

1新建一张表,记录不同表需要自增的字段,同时记录自增字段的最大值,以便下次分配值时,用最大值加1进行赋值。

2在成功分配一个自增字段值后,同时更新这个表中的对应记录的最大值,来保证下次分配时永远是最大值+1,也就达到了不重复。

注:用这种自定义实现的自增字段有好处,但也要慎重。

优点:如果项目需要迁移数据库平台的话(如从SQLServer迁移到Oracle),就不用考虑自增字段的问题了。

缺点:需要解决程序的并发问题,就是同时请求主键,会分配相同的情况。

这种情况使用xml来进行批量插入

1aspnet页面上抓取数据,转换成xml字符串

2将这个字符串作为参数传给存储过程

3存储过程里,将这个xml读取成临时表

4整个临时表插入到目标数据表中,这个过程可以使用sql

server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到aspnet后台,让后台进行处理异常

您用游标或aspnet代码来循环,速度会比较慢的

以上就是关于mySQL中如何修改列为自动增长急!!!全部的内容,包括:mySQL中如何修改列为自动增长急!!!、mysql数据库设置了一个id字段是自增的,但是插入数据时还是要手动插入id,不插入id就会出错。、数据库表的设计用 自增长int类型字段做主键,插入数据时怎么保证这条记录在表中是唯一的呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10164419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存