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