primary key == 主鍵 等價(jià)于 唯一 (UNIQUE) 且 非空 (NOT NULL)
因?yàn)?Mysql 里面的自增列, 必須要依賴一個(gè) 主鍵 或者 唯一的鍵。
所以你的 SQL 里面要有一個(gè)
PRIMARY KEY ( `id` )
如果不加 PRIMARY KEY ( `id` ) 的話, 結(jié)果將像下面這個(gè)樣子:
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
ENGINE = InnoDB DEFAULT CHARSET = gbk AUTO_INCREMENT =1;
這行語句, 設(shè)置了3個(gè)表的屬性
ENGINE = InnoDB 是設(shè)置表的引擎。 innoDB 引擎是比較新的, 支持外鍵 與 事務(wù)處理等特性。
CHARSET = gbk 是字符集
AUTO_INCREMENT =1 是那個(gè) 自增的 ID , 起始數(shù)值是 1
我把這樣的表單寫入數(shù)據(jù)庫以后 留言板上的內(nèi)容(中文)添加上去顯示是“??”。
我查看結(jié)構(gòu)的時(shí)候確實(shí)是gbk_chinese_ci 了
這個(gè)要調(diào)查一下,你的數(shù)據(jù),是怎么插入的。
雖然你的數(shù)據(jù)庫表的 字符編碼, 是 gbk 了。
但是如果你的 數(shù)據(jù),是通過 網(wǎng)頁插入的, 而網(wǎng)頁的編碼是 utf8 之類的話。
那么最后保存的數(shù)據(jù), 就可能是 ?? 了。