如果你要為 ?score中, ?增加一個 唯一的 自增 id。
因為努力和真誠,有更多的客戶和我們聚集在一起,為了共同目標,成都創(chuàng)新互聯(lián)在工作上密切配合,從創(chuàng)業(yè)型企業(yè)到如今不斷成長,要感謝客戶對我們的高要求,讓我們敢于面對挑戰(zhàn),才有今天的進步與發(fā)展。從網(wǎng)站到重慶小程序開發(fā),軟件開發(fā),成都App定制開發(fā),十余年企業(yè)網(wǎng)站建設服務經驗,為企業(yè)提供網(wǎng)站設計,網(wǎng)站托管運營一條龍服務.為企業(yè)提供營銷型網(wǎng)站,專業(yè)公司,原創(chuàng)設計,十余年品質,值得您的信賴.
那么恐怕你要修改表的主鍵了, 把 那個使用 ?AUTO_INCREMENT ?的 ??id ?設置為主鍵。
因為?僅僅只定義 AUTO_INCREMENT 是無法處理的。
mysql?CREATE?TABLE?tab?(
-???id??INT?AUTO_INCREMENT,
-???val?VARCHAR(10)
-?);
ERROR?1075?(42000):?Incorrect?table?definition;?there?can?be?only?one?auto?column?and?it?must?be?defined?as?a?key
看上上面的例子了么?
我僅僅定義了 ?id ?INT AUTO_INCREMENT。
沒有定義為主鍵。
結果錯誤提示信息為:
只能有一個自動遞增的列, 并且必須要定義為 key.
你使用SQL語句修改呢,還是使用PHPMYADMIN?
在PHPMYADMIN里面非常簡單,打開相應的表,修改字段屬性,設置為主鍵既可。如果主鍵是幾個字段的聯(lián)合,那么就選擇新建立索引,索引類型是PREMARYKEY既可。
如果是用SQL語句,那么可以使用下面的SQL語句:
ALERT TABLE tab_name ADD PRIMARY KEY (index_col_name,...);
按如下方法:
1、創(chuàng)建表
create?table?t5?
(id?int?auto_increment,
name?varchar(20)?primary?key,
key(id));
其中name字段是主鍵,而id字段則是自增字段。
2、試插入數(shù)據(jù):
insert?into?t5?(name)?values?('a');
執(zhí)行結果:
可以看出第一次,id字段為1。
3、插入第二次數(shù)據(jù):
insert?into?t5?(name)?values?('b');
執(zhí)行結果:
第二次插入的為2,這樣就實現(xiàn)了自增。
1.外鍵的作用,主要有兩個:
一個是讓數(shù)據(jù)庫自己通過外鍵來保證數(shù)據(jù)的完整性和一致性
一個就是能夠增加ER圖的可讀性
2.外鍵的配置
1)先創(chuàng)建一個主表,代碼如下:
#創(chuàng)建表student,并添加各種約束
create table student
(
id int primary key , #主鍵約束
name varchar(20) , #唯一約束
age int NOT NULL, #非空約束
sex varchar(2) ,
address varchar(20) default '重慶' #默認約束
) ;
再通過一個外鍵,創(chuàng)建一個分數(shù)表,這樣的話,就可以方便查詢。代碼如下:
#創(chuàng)建分數(shù)表
create table score
(
id int primary key ,
sid int ,
china int ,
history int,
english int,
constraint FK_sid foreign key(sid) references student(id) #通過外鍵創(chuàng)建鏈接
) ;
創(chuàng)建外鍵的方法有很多,其中最常見創(chuàng)建外鍵的格式是:constraint FK_*** foreign key(**) references 鏈接的外表
刪除外鍵:
alter table drop foreign key '外鍵名'.
注意:
只有在定義外鍵時,用constraint 外鍵名 foreign key .... 方便進行外鍵的刪除
主鍵是唯一標示這一行的,就好像你的身份證號一樣,每個人只有一個,也是唯一能證明你是你的東西。外鍵是別人執(zhí)行你的東西。也就是說如果一個人想和你有點關系怎么辦,那就要關聯(lián)起來,怎么關聯(lián)起來,就通過外鍵啊
定義主鍵和外鍵主要是為了維護關系數(shù)據(jù)庫的完整性,總結一下:
一、主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,所以,身份證號是主鍵。
外鍵用于與另一張表的關聯(lián)。是能確定另一張表記錄的字段,用于保持數(shù)據(jù)的一致性。比如,A表中的一個字段,是B表的主鍵,那他就可以是A表的外鍵。
從零蛋娃娃的回復中得到啟示,解決問題。
重新表述需求: id自增長,同時需要一個鍵uniquekey是唯一鍵。
解決方法就是:
把id在索引中設置索引類型為任意一個類型,比如normal,然后unique就可以設置為主鍵了。
或者反過來,id自增長,同時作為主鍵。 uniquekey在索引中索引類型設置為unique即可。
補充:考慮到主鍵能設置成外鍵,所以建議用以上第一種方式。
1、建表時設置主鍵
create table test(
id int primary key auto_increment,
name varchar(50)
)
2、手動設置主鍵
進入phpmyadmin頁面,表結構選擇列主鍵,操作項AUTO_INCREMENT輸入自增起始值。