如何在MySQL&Oracle下创建自动递增字段

如何在MySQL&Oracle下创建自动递增字段,第1张

如何在MySQL&Oracle下创建自动递增字段

在MySQL下创建自动递增字段

create table article   //先创建一个表

(       

id int primary key auto_increment   //设置该字段为自动递增字段

title varchar( )

)

insert into article values (null a )     //向数据库中插入数据

select * from article   结果如下

Id

Title

a

insert into article values (null b )

insert into article values (null c )

insert into article  (title)  values ( d )

select * from article   结果如下

Id

Title

a

b

c

d

但是oracle没有这样的功能 但是通过触发器(trigger)和序列(sequence)可以实现

假设关键字段为id 建一个序列 代码为

create sequence seq_test_ids minvalue maxvalue start with increment by nocache order <! [if !supportLineBreakNewLine] ><! [endif] >

建解发器代码为

lishixinzhi/Article/program/Oracle/201311/18903

方法一:

如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

truncate

table

表名

方法二:

dbcc

checkident

('table_name',

reseed,

new_reseed_value)

当前值设置为

new_reseed_value。如果自创建表后没有将行插入该表,则在执行

dbcc

checkident

后插入的第一行将使用

new_reseed_value

作为标识。否则,下一个插入的行将使用

new_reseed_value

+

1。如果

new_reseed_value

的值小于标识列中的最大值,以后引用该表时将产生

2627

号错误信息。

方法二不会清空已有数据, *** 作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。

$sql="delete

from

$table_vote"

mysql_query($sql,

$link)

$sql="alter

table

$table_vote

auto_increment=1"

mysql_query($sql,

$link)


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

原文地址: http://outofmemory.cn/zaji/8728426.html

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

发表评论

登录后才能评论

评论列表(0条)

保存