亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

把id主鍵默認約束0改為 自動編號 怎么寫語句?

老師在users2表里的添加 id為主鍵? 但是沒有添加自動編號

然后我現在 id的主鍵? 有一個默認約束為0

show create table users2;

?`id` smallint(5) unsigned NOT NULL DEFAULT '0',? ←現在是這樣的
? PRIMARY KEY (`id`)

我就是想 把id主鍵的? 默認約束0 ?? 修改為 自動編號 要怎么操作呢?

`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,?? ←我要改成這樣

正在回答

3 回答

可以使用字段修改語句如下:

ALTER TABLE users2 CHANGE id id SMALLINT UNSIGNED NOT NULL PRIMARY KEY ?AUTO_INCREMENT;

這個語句相當于修改了重寫了原id字段。不過我懷疑3-6節還沒有講到這個語句,或許可以看下MODIFY...SET..添加約束是否可行,我有點忘記了。

另外`id` smallint(5) unsigned NOT NULL DEFAULT '0' 應該是DEFAULT 0 吧,畢竟id是int型的。

0 回復 有任何疑惑可以回復我~

有幾個給主鍵設置默認的,暈

0 回復 有任何疑惑可以回復我~

我的大神已經私聊回答我了? 我把他貼上來

我針對你的問題我提幾個東西:
1、0是默認值,不是默認約束,PRIMARY KEY (`id`) 這個才叫約束,是主鍵約束,表示這條記錄在這張表里是唯一的。
2、主鍵Id不建議用smallint,因為你要用自動增長列,smallint的范圍太小了,建議用int或者bigInt
3、如果你的表建好了,修改字段的語句用 ALTER
alter table `users` modify column `id` bigInt(11) unsigned NOT NULL AUTO_INCREMENT

1 回復 有任何疑惑可以回復我~
#1

charsandrew

有點不同意見,DEFAULT 0也是約束,叫默認約束,PRIMARY KEY 叫主鍵約束,類似的還有唯一約束。 另外主鍵id用什么類型是看數據量的,SMALLINT UNSIGNED 是2的16次方-1,有些情況下已經夠用了。
2016-08-23 回復 有任何疑惑可以回復我~
#2

heruibin322

學習了
2016-08-24 回復 有任何疑惑可以回復我~
#3

慕田峪1130169

如果想把id這列放在首列怎么改
2016-09-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
與MySQL的零距離接觸
  • 參與學習       396743    人
  • 解答問題       3497    個

本課程涵蓋全部MySQL數據庫的基礎,學習MySQL數據庫的基礎知識

進入課程

把id主鍵默認約束0改為 自動編號 怎么寫語句?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號