十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
哈哈,樓主遇到我算是你有福氣了,我專門為你編寫(xiě)了一個(gè)函數(shù),來(lái)獲取表的主鍵名()(可能還有更簡(jiǎn)單的方法,但我不知道)。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、蘭考網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、蘭考網(wǎng)絡(luò)營(yíng)銷、蘭考企業(yè)策劃、蘭考品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供蘭考建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
請(qǐng)看如下代碼:
?php
function get_primary($host,$user,$password,$tb) //定義函數(shù),參數(shù)分別為主機(jī)名、用戶名、密碼、表名(還可以加入庫(kù)名,我忘了)
{
mysql_connect($host,$user,$password); //連接主機(jī)
mysql_select_db("test"); //選擇庫(kù)
$result=mysql_query("DESCRIBE ".$tb); //分析表
while($rows=mysql_fetch_array($result)) //遍歷結(jié)果集(即所有字段情況)
{
if($rows["Key"]=="PRI") //判斷相應(yīng)字段主鍵情況,如果是主鍵則跳出
break;
}
return $rows["Field"]; //返回所在字段名稱
}
echo get_primary("localhost","root","","te"); //調(diào)用函數(shù)
?
1、打開(kāi)navicat工具,連接上mysql服務(wù)器,選擇完數(shù)據(jù)庫(kù)之后,選擇一個(gè)表右擊選擇設(shè)計(jì)表(這里為了演示測(cè)試,隨便選擇一個(gè)表即可)。
2、在設(shè)計(jì)表頁(yè)面,可以看到當(dāng)前表的所有字段信息,我們選擇的學(xué)生表有一個(gè)id字段,目前該表沒(méi)有主鍵字段。
3、如圖,在最后一列右擊選擇主鍵,即可將該字段設(shè)置為主鍵,也可以直接點(diǎn)擊鼠標(biāo)左鍵,可以快速添加和取消主鍵。
4、設(shè)置完主鍵之后,可以看到一把鎖的標(biāo)志,并且有一個(gè)1字,因?yàn)橐粋€(gè)表可以給多個(gè)字段添加主鍵,則為聯(lián)合主鍵,這樣就顯示為主鍵1,主鍵2等。
5、主鍵設(shè)置完成之后,還沒(méi)有自增,選擇id字段之后,在下方,如圖,勾選自動(dòng)遞增,這樣id在每次插入記錄之后都會(huì)自增一個(gè)值。
6、設(shè)置完成主鍵和自增之后,點(diǎn)擊保存,關(guān)閉當(dāng)前窗口,然后選擇表名右擊選擇對(duì)象信息。
7、在DLL頁(yè)面中,可以看到剛剛添加的主鍵和自增的DLL語(yǔ)句,這里就是創(chuàng)建表的DLL語(yǔ)句。
8、上面有提到聯(lián)合主鍵,其實(shí)一個(gè)表可以給多個(gè)字段設(shè)置主鍵,這樣可以組成聯(lián)合主鍵,對(duì)于特定的業(yè)務(wù),聯(lián)合主鍵也是必須的。
添加主鍵~
alter
table
table_name
add
constraint
pk_name
primary
key(列名);
添加外鍵~
alter
table
table_name
add
constraion
pk_name
foreign
key(列名)
references
table_name(列名);
基礎(chǔ)語(yǔ)法~其他條件自行添加
mysql設(shè)置UUID為主鍵需要先將數(shù)據(jù)類型設(shè)置為VARCHAR(36),然后插入數(shù)據(jù)的時(shí)候用UUID函數(shù)插入U(xiǎn)UID。下面我用win10系統(tǒng)下的CMD命令行具體演示一下:
1、打開(kāi)CMD,輸入mysql -uroot -p命令連接mysql,如下圖所示
2、通過(guò)create創(chuàng)建表,指定ID為varchar(36),并設(shè)置為主鍵,如下圖所示
3、在插入數(shù)據(jù)的時(shí)候,調(diào)用uuid()函數(shù)往主鍵字段里插入uuid值,如下圖所示
4、最后查詢插入的數(shù)據(jù)就可以看到id主鍵列存放的是uuid類型了,如下圖所示
1.主鍵語(yǔ)法
①創(chuàng)建時(shí):create table sc (
studentno int,
courseid int,
score int,
primary key (studentno) );
②修改時(shí):ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先沒(méi)有設(shè)置主鍵。
2.外鍵語(yǔ)法
①創(chuàng)建時(shí):create table sc (
studentno int,
courseid int,
score int,
foreign key (courseid) );
②修改時(shí):
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[約束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用組合主鍵
如果一列不能唯一區(qū)分一個(gè)表里的記錄時(shí),可以考慮多個(gè)列組合起來(lái)達(dá)到區(qū)分表記錄的唯一性,形式
①創(chuàng)建時(shí):create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改時(shí):alter table tb_name add primary key (字段1,字段2,字段3);
前提是原來(lái)表中沒(méi)有設(shè)置主鍵,若原先已有主鍵則會(huì)報(bào)錯(cuò)。