mysql主鍵有必要自增嗎 主鍵自增的關(guān)鍵字是什么?
主鍵自增的關(guān)鍵字是什么?自增漲主鍵MySQL自動(dòng)出現(xiàn)增長(zhǎng)的速度在用的關(guān)鍵字是AUTO_INCREMENTmysql定義結(jié)構(gòu)需考慮的問(wèn)題?在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)必須再注意:1、永遠(yuǎn)為表設(shè)定一個(gè)自增主鍵ID,并
主鍵自增的關(guān)鍵字是什么?
自增漲主鍵MySQL自動(dòng)出現(xiàn)增長(zhǎng)的速度在用的關(guān)鍵字是AUTO_INCREMENT
mysql定義結(jié)構(gòu)需考慮的問(wèn)題?
在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)必須再注意:
1、永遠(yuǎn)為表設(shè)定一個(gè)自增主鍵ID,并盡很可能的利用此ID進(jìn)行構(gòu)造
(在配置表中)盡可能會(huì)的用上unsigned,并盡可能會(huì)的小。能用tinyint(1字節(jié))、smallint(2字節(jié))、mediumint(3字節(jié)),就用不著int(4)字節(jié)
2、盡可能會(huì)的使用ENUM,例如性別,屬相等,因ENUM是能保存為tinyint
3、盡很有可能的使用notflase,如果不是業(yè)務(wù)是需要不使用null
4、把IP地址存為intunsigned,建議使用inet_aton()和inet_ntoa()來(lái)參與轉(zhuǎn)換的
5、盡量不使用短的字符類型
6、盡量不使用固長(zhǎng)的字符類型,當(dāng)表中所有的字段也是且固定長(zhǎng)度,DB會(huì)以為表是static類型,假如有固定設(shè)置長(zhǎng)度和非且固定長(zhǎng)度的字段最好不要常規(guī)垂直空間切割,將表編緝。
sql語(yǔ)句里primary key什么意思?怎么用?
primarykey主鍵等價(jià)于僅有(UNIQUE)且非空(NOT NULL)
畢竟Mysql里面的自增列,要要依賴感一個(gè)主鍵或者真正的鍵。
因?yàn)槟愕腟QL里面要有一個(gè)
PRIMARYKEY(`id`)
如果不是不加PRIMARYKEY(`id`)的話,結(jié)果將像下面這個(gè)樣子:
mysqlgtCREATETABLEtab(
-a8idINTAUTO_INCREMENT,
-gtvalVARCHAR(10)
-gt)
ERROR1075(42000):Incorrecttabledefinitiontherecan beonly oneautocolumnbutitmust bedefinedas akey
ENGINEInnoDBDEFAULTCHARSETgbkAUTO_INCREMENT1
這行語(yǔ)句,設(shè)置里了3個(gè)表的屬性
ENGINEInnoDB是設(shè)置表的引擎。innoDB引擎是都很新的,支持什么外鍵與事務(wù)處理等特性。
CHARSETgbk是字符集
AUTO_INCREMENT1是那個(gè)自增的ID,起始數(shù)值是1
我把這樣的表單中寫入數(shù)據(jù)庫(kù)以后留言板上的內(nèi)容(中文)先添加上來(lái)總是顯示是“??”。
我欄里點(diǎn)結(jié)構(gòu)的時(shí)候的確是gbk_chinese_ci了
這個(gè)要各種調(diào)查一下,你的數(shù)據(jù),是怎么插入的。
可是你的數(shù)據(jù)庫(kù)表的字符編碼,是gbk了。
可是如果你的數(shù)據(jù),是實(shí)際網(wǎng)頁(yè)直接插入的,而網(wǎng)頁(yè)的編碼是utf8之類的話。
那你后來(lái)保存的數(shù)據(jù),就很可能是??了。