一、修改自增長(zhǎng)序列的值
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、舒蘭網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為舒蘭等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
alter table table_name auto_increment=n;
注意:n只能大于已有的auto_increment的整數(shù)值,小于的值無效.
show table status like 'table_name' 的返回結(jié)果里的auto_increment列就是表的現(xiàn)有值.
二、控制主鍵的起點(diǎn)
create table 表名
(
......
) engine=INNODB auto_increment=1001 default charset=gbk;
三、自增主鍵歸零
如果曾經(jīng)的數(shù)據(jù)都不需要的話,可以直接清空所有數(shù)據(jù),并將自增字段恢復(fù)從1開始計(jì)數(shù)
truncate table 表名
四、獲取自增主鍵
通過SQL select LAST_INSERT_ID()函數(shù)
通過SQL @@IDENTITY 變量
五、說明
AUTO_INCREMENT數(shù)據(jù)列必須有唯一索引,以避免序號(hào)重復(fù)。
AUTO_INCREMENT數(shù)據(jù)列必須具備NOT NULL屬性。
設(shè)置AUTO_INCREMENT屬性的數(shù)據(jù)列應(yīng)該是一個(gè)正數(shù)序列,所以應(yīng)該把該數(shù)據(jù)列聲明為UNSIGNED,這樣序列的編號(hào)個(gè)可增加一倍。
-- 方法一:
由于MySQL目前字段的默認(rèn)值不支持函數(shù),所以以create_time datetime default now() 的形式設(shè)置默認(rèn)值是不可能的。代替的方案是使用TIMESTAMP類型代替DATETIME類型。
TIMESTAMP列類型自動(dòng)地用當(dāng)前的日期和時(shí)間標(biāo)記INSERT或UPDATE的操作。如果有多個(gè)TIMESTAMP列,只有第一個(gè)自動(dòng)更新。
自動(dòng)更新第一個(gè)TIMESTAMP列在下列任何條件下發(fā)生:
1.列值沒有明確地在一個(gè)INSERT或LOAD DATA INFILE語句中指定。
2.列值沒有明確地在一個(gè)UPDATE語句中指定且另外一些的列改變值。(注意一個(gè)UPDATE設(shè)置一個(gè)列為它已經(jīng)有的值,這將不引起TIMESTAMP列被更新,因?yàn)槿绻阍O(shè)置一個(gè)列為它當(dāng)前的值,MySQL為了效率而忽略更改。)
3.你明確地設(shè)定TIMESTAMP列為NULL.
4.除第一個(gè)以外的TIMESTAMP列也可以設(shè)置到當(dāng)前的日期和時(shí)間,只要將列設(shè)為NULL,或NOW()。
所以把日期類型 選擇成timestamp 允許空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的話,將字段設(shè)置為timestamp,然后默認(rèn)值寫上CURRENT_TIMESTAMP即可
mysql是沒有序列的,我最近剛做完一個(gè)項(xiàng)目也是從oralce移植到mysql數(shù)據(jù)庫(kù)上,oracle中 HIbernate配置都是這樣
generator class="sequence"
param name="sequence"SEQUENCE_CHILDREM_ARCHIVE_ID/param
/generator
,到移植到mysql數(shù)據(jù)庫(kù)中之后
generator class="identity"/generator
identity或者是increment都是可以滴,前提是你mysql表中的主鍵是auto_increatement的int類型的。
序列只有db2
oracle有,mysql沒有序列的,不過你可以給你所所創(chuàng)建的表的主鍵設(shè)置為自增。
例如
create
table
A
(
id
int(20)
auto_increment
)
不過設(shè)置為自增的鍵必須是數(shù)值類型的。