iT邦幫忙

0

SQL 文法錯誤?? (初學者發問,不好意思)

sql

請問以下我在 MySQL的新增table是要修改那裡?

CREATE TABLE vote (

id MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT ,
pclanguage ENUM( 'php', 'jsp', 'asp' ) NOT NULL ,
custname VARCHAR( 50 ) NOT NULL DEFAULT '愛好者姓名',
custid VARCHAR( 50 ) NOT NULL ,
custaddr VARCHAR( 255 ) NOT NULL DEFAULT '你的地址如下',
custtel VARCHAR( 50 ) NOT NULL DEFAULT '12345678',
birthday DATETIME NOT NULL ,
votetime DATETIME NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8
MySQL 傳回:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

可是問題是…我只有指定1個自動增加的欄位不是嗎? 試了很久,還是搞不懂…
麻煩幫忙一下,thanks

加個 PRIMARY KEY 試試看
如下供參考

CREATE TABLE `vote` (

`id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`pclanguage` ENUM( 'php', 'jsp', 'asp' ) NOT NULL ,
`custname` VARCHAR( 50 ) NOT NULL DEFAULT '愛好者姓名',
`custid` VARCHAR( 50 ) NOT NULL ,
`custaddr` VARCHAR( 255 ) NOT NULL DEFAULT '你的地址如下',
`custtel` VARCHAR( 50 ) NOT NULL DEFAULT '12345678',
`birthday` DATETIME NOT NULL ,
`votetime` DATETIME NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8

1 個回答

12
lordrd
iT邦新手 2 級 ‧ 2010-11-26 18:23:21
最佳解答

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

你沒看完整 ... 後面還有說 要指定成 key !

你把這兩行加進去 ( 在括弧裡面喔 ) 就 OK 啦 ~

PRIMARY KEY (id),
UNIQUE KEY mainIndex\_UNIQUE (id),

lovelva iT邦新手 5 級 ‧ 2010-11-27 02:44:09 檢舉

可以了,謝謝.
再問一下,是不是只要欄位有設 'AUTO_INCREMENT' ,
就要把它設 PRIMARY KEY 或是 UNIQUE KEY?

外獅佬 iT邦大師 1 級 ‧ 2010-11-27 08:45:06 檢舉

MySQL 4以上,答案是『是』
3.x,不設成key也是可以滴

我要發表回答

立即登入回答